Pat Garcia contributes arc filter options to allow moving points to the closest
authorrobertlipe@gmail.com <robertlipe@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 30 Oct 2011 20:22:26 +0000 (20:22 +0000)
committerrobertlipe@gmail.com <robertlipe@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 30 Oct 2011 20:22:26 +0000 (20:22 +0000)
segment.

git-svn-id: http://gpsbabel.googlecode.com/svn/trunk@4102 f51c46e8-681c-474f-0cfe-069cfd0219fb

16 files changed:
gpsbabel/arcdist.c
gpsbabel/grtcirc.c
gpsbabel/grtcirc.h
gpsbabel/gui/mainwindow.cpp
gpsbabel/internal_styles.c
gpsbabel/reference/arc-project.gpx [new file with mode: 0644]
gpsbabel/reference/arc-project1.gpx [new file with mode: 0644]
gpsbabel/reference/arc-project2.gpx [new file with mode: 0644]
gpsbabel/reference/arc-project3.gpx [new file with mode: 0644]
gpsbabel/testo.d/arc-project.test [new file with mode: 0644]
gpsbabel/testo.d/subrip.test
gpsbabel/xmldoc/filters/arc-project.xml [new file with mode: 0644]
gpsbabel/xmldoc/filters/arc-rte.xml [new file with mode: 0644]
gpsbabel/xmldoc/filters/arc-trk.xml [new file with mode: 0644]
gpsbabel/xmldoc/filters/arc.xml
gpsbabel/xmldoc/filters/options/arc-file.xml

index eac069f0624b29a615abc110b706c230b3a6497f..e997619da1aae323907fad2fd83d9c415f0dc3e0 100644 (file)
 static double pos_dist;
 static char* distopt = NULL;
 static char* arcfileopt = NULL;
+static char* rteopt = NULL;
+static char* trkopt = NULL;
 static char* exclopt = NULL;
 static char* ptsopt = NULL;
+static char* projectopt = NULL;
 
 typedef struct {
   double distance;
+  double prjlatitude, prjlongitude;
+  double frac;
+  waypoint* arcpt1, * arcpt2;
 } extra_data;
 
 static
 arglist_t arcdist_args[] = {
   {
     "file", &arcfileopt,  "File containing vertices of arc",
-    NULL, ARGTYPE_FILE | ARGTYPE_REQUIRED, ARG_NOMINMAX
+    NULL, ARGTYPE_FILE, ARG_NOMINMAX
+  },
+  {
+    "rte", &rteopt, "Route(s) are vertices of arc",
+    NULL, ARGTYPE_BOOL, ARG_NOMINMAX
+  },
+  {
+    "trk", &trkopt, "Track(s) are vertices of arc",
+    NULL, ARGTYPE_BOOL, ARG_NOMINMAX
   },
   {
     "distance", &distopt, "Maximum distance from arc",
@@ -53,95 +67,200 @@ arglist_t arcdist_args[] = {
     "points", &ptsopt, "Use distance from vertices not lines",
     NULL, ARGTYPE_BOOL, ARG_NOMINMAX
   },
+  {
+    "project", &projectopt, "Move waypoints to its projection on lines or vertices",
+    NULL, ARGTYPE_BOOL, ARG_NOMINMAX
+  },
   ARG_TERMINATOR
 };
 
 #define BADVAL 999999
 
-void
-arcdist_process(void)
+static void
+arcdist_arc_disp_wpt_cb(const waypoint *arcpt2)
 {
   queue* elem, * tmp;
   waypoint* waypointp;
-  double dist;
   extra_data* ed;
-  double lat1, lon1, lat2, lon2;
-  int fileline = 0;
-  char* line;
-  gbfile* file_in;
+  double dist;
+  double prjlat, prjlon, frac;
+  static waypoint* arcpt1 = NULL;
 
-  file_in = gbfopen(arcfileopt, "r", MYNAME);
+  if (arcpt2 && arcpt2->latitude != BADVAL && arcpt2->longitude != BADVAL &&
+      (ptsopt || (arcpt1 &&
+                  (arcpt1->latitude != BADVAL && arcpt1->longitude != BADVAL)))) {
+    QUEUE_FOR_EACH(&waypt_head, elem, tmp) {
 
-  lat1 = lon1 = lat2 = lon2 = BADVAL;
-  while ((line = gbfgetstr(file_in))) {
-    char* pound = NULL;
-    int argsfound = 0;
+      waypointp = (waypoint*) elem;
+      if (waypointp->extra_data) {
+        ed = (extra_data*) waypointp->extra_data;
+      } else {
+        ed = (extra_data*) xcalloc(1, sizeof(*ed));
+        ed->distance = BADVAL;
+      }
+      if (ed->distance == BADVAL || projectopt || ed->distance >= pos_dist) {
+        if (ptsopt) {
+          dist = gcdist(RAD(arcpt2->latitude),
+                        RAD(arcpt2->longitude),
+                        RAD(waypointp->latitude),
+                        RAD(waypointp->longitude));
+          prjlat =  arcpt2->latitude;
+          prjlon = arcpt2->longitude;
+          frac = 1.0;
+        } else {
+          dist = linedistprj(arcpt1->latitude,
+                             arcpt1->longitude,
+                             arcpt2->latitude,
+                             arcpt2->longitude,
+                             waypointp->latitude,
+                             waypointp->longitude,
+                             &prjlat, &prjlon, &frac);
+        }
 
-    fileline++;
+        /* convert radians to float point statute miles */
+        dist = radtomiles(dist);
 
-    pound = strchr(line, '#');
-    if (pound) {
-      if (0 == strncmp(pound, "#break", 6)) {
-        lat1 = lon1 = BADVAL;
+        if (ed->distance > dist) {
+          ed->distance = dist;
+          if (projectopt) {
+            ed->prjlatitude = prjlat;
+            ed->prjlongitude = prjlon;
+            ed->frac = frac;
+            ed->arcpt1 = arcpt1;
+            ed->arcpt2 = (waypoint*) arcpt2;
+          }
+        }
+        waypointp->extra_data = ed;
       }
-      *pound = '\0';
     }
+  }
+  arcpt1 = (waypoint*) arcpt2;
+}
 
-    lat2 = lon2 = BADVAL;
-    argsfound = sscanf(line, "%lf %lf", &lat2, &lon2);
+static void
+arcdist_arc_disp_hdr_cb(const route_head *rte)
+{
+  /* Set arcpt1 to NULL */
+  arcdist_arc_disp_wpt_cb(NULL);
+}
 
-    if (argsfound != 2 && strspn(line, " \t\n") < strlen(line)) {
-      warning(MYNAME ": Warning: Arc file contains unusable vertex on line %d.\n", fileline);
-    } else if (lat2 != BADVAL && lon2 != BADVAL &&
-               (ptsopt || (lat1 != BADVAL && lon1 != BADVAL))) {
-      QUEUE_FOR_EACH(&waypt_head, elem, tmp) {
+void
+arcdist_process(void)
+{
+  queue* elem, * tmp;
+  unsigned removed;
 
-        waypointp = (waypoint*)elem;
-        if (waypointp->extra_data) {
-          ed = (extra_data*) waypointp->extra_data;
-        } else {
-          ed = (extra_data*) xcalloc(1, sizeof(*ed));
-          ed->distance = BADVAL;
-        }
-        if (ed->distance == BADVAL || ed->distance >= pos_dist) {
-          if (ptsopt) {
-            dist = gcdist(RAD(lat2), RAD(lon2),
-                          RAD(waypointp->latitude),
-                          RAD(waypointp->longitude));
-          } else {
-            dist = linedist(lat1, lon1, lat2, lon2,
-                            waypointp->latitude,
-                            waypointp->longitude);
-          }
+  if (arcfileopt) {
+    int fileline = 0;
+    char* line;
+    gbfile* file_in;
+    waypoint* arcpt2, * arcpt1;
 
-          /* convert radians to float point statute miles */
-          dist = radtomiles(dist);
+    file_in = gbfopen(arcfileopt, "r", MYNAME);
 
-          if (ed->distance > dist) {
-            ed->distance = dist;
-          }
-          waypointp->extra_data = ed;
+    arcpt1 = waypt_new();
+    arcpt2 = waypt_new();
+    arcdist_arc_disp_hdr_cb(NULL);
+
+    arcpt2->latitude = arcpt2->longitude = BADVAL;
+    while ((line = gbfgetstr(file_in))) {
+      char * pound = NULL;
+      int argsfound = 0;
+
+      fileline++;
+
+      pound = strchr(line, '#');
+      if (pound) {
+        if (0 == strncmp(pound, "#break", 6)) {
+         arcdist_arc_disp_hdr_cb(NULL);
         }
+        *pound = '\0';
+      }
+
+      arcpt2->latitude = arcpt2->longitude = BADVAL;
+      argsfound = sscanf(line, "%lf %lf", &arcpt2->latitude, &arcpt2->longitude);
+
+      if (argsfound != 2 && strspn(line, " \t\n") < strlen(line)) {
+        warning(MYNAME ": Warning: Arc file contains unusable vertex on line %d.\n", fileline);
+      }
+      else {
+        waypoint* arcpttmp = waypt_dupe(arcpt1);
+        arcdist_arc_disp_wpt_cb(arcpt2);
+        arcpt2 = arcpttmp;
       }
     }
-    lat1 = lat2;
-    lon1 = lon2;
-  }
+    waypt_free(arcpt1);
+    waypt_free(arcpt2);
 
-  gbfclose(file_in);
+    gbfclose(file_in);
+  } else if (rteopt) {
+    route_disp_all(arcdist_arc_disp_hdr_cb, NULL, arcdist_arc_disp_wpt_cb);
+  } else if (trkopt) {
+    track_disp_all(arcdist_arc_disp_hdr_cb, NULL, arcdist_arc_disp_wpt_cb);
+  }
 
+  removed = 0;
   QUEUE_FOR_EACH(&waypt_head, elem, tmp) {
     waypoint* wp = (waypoint*) elem;
+    extra_data* ed;
     ed = (extra_data*) wp->extra_data;
     wp->extra_data = NULL;
     if (ed) {
       if ((ed->distance >= pos_dist) == (exclopt == NULL)) {
         waypt_del(wp);
         waypt_free(wp);
+        removed++;
+      } else if (projectopt) {
+        wp->longitude = ed->prjlongitude;
+        wp->latitude = ed->prjlatitude;
+        wp->route_priority = 1;
+        if (!arcfileopt &&
+             (ed->arcpt2->altitude != unknown_alt) &&
+             (ptsopt || (ed->arcpt1->altitude != unknown_alt))) {
+          /* Interpolate alititude */
+          if (ptsopt) {
+            wp->altitude = ed->arcpt2->altitude;
+          } else {
+            wp->altitude = ed->arcpt1->altitude +
+              ed->frac * (ed->arcpt2->altitude - ed->arcpt1->altitude);
+          }
+        }
+        if (trkopt &&
+             (ed->arcpt2->creation_time != 0) &&
+             (ptsopt || (ed->arcpt1->creation_time != 0))) {
+          /* Interpolate time */
+          if (ptsopt) {
+            wp->creation_time = ed->arcpt2->creation_time;
+            wp->microseconds = ed->arcpt2->microseconds;
+          } else {
+            double wptimes = ed->arcpt1->creation_time +
+              ed->frac * (ed->arcpt2->creation_time - ed->arcpt1->creation_time);
+            wp->creation_time = floor(wptimes);
+            wp->microseconds = 1000000.0 * (wptimes - wp->creation_time);
+            if (ed->arcpt1->microseconds <=  ed->arcpt2->microseconds) {
+              wp->microseconds += ed->arcpt1->microseconds +
+                ed->frac * (ed->arcpt1->microseconds - ed->arcpt1->microseconds);
+            } else {
+              wp->microseconds += ed->arcpt1->microseconds +
+                ed->frac * (1000000 - ed->arcpt1->creation_time +
+                            ed->arcpt2->creation_time);
+              wp->creation_time--;
+            }
+
+            wp->creation_time += wp->microseconds / 1000000;
+            wp->microseconds %= 1000000;
+          }
+        }
+        if (global_opts.debug_level >= 1) {
+          warning("Including waypoint %s at dist:%f lat:%f lon:%f\n", wp->shortname, ed->distance, wp->latitude, wp->longitude);
+        }
       }
       xfree(ed);
     }
   }
+  if (global_opts.verbose_status > 0) {
+    printf(MYNAME "-arc: %d waypoint(s) removed.\n", removed);
+  }
 }
 
 void
@@ -149,13 +268,19 @@ arcdist_init(const char* args)
 {
   char* fm;
 
+  if ((!arcfileopt && !rteopt && !trkopt) ||
+      (arcfileopt && (rteopt || trkopt)) ||
+      (rteopt && trkopt)) {
+    fatal(MYNAME ": Incompatible or incomplete option values!\n");
+  }
+
   pos_dist = 0;
 
   if (distopt) {
     pos_dist = strtod(distopt, &fm);
 
     if ((*fm == 'k') || (*fm == 'K')) {
-      /* distance is kilometers, convert to feet */
+      /* distance is kilometers, convert to mile */
       pos_dist *= .6214;
     }
   }
index 4be866261fbfb5eafd41f9d66cc96baab521d6ee..8e98d204ea8afd6d992c0e5c750d22a9d700f958 100644 (file)
@@ -125,10 +125,11 @@ double heading_true_degrees(double lat1, double lon1, double lat2, double lon2)
   return h;
 }
 
-
-double linedist(double lat1, double lon1,
-                double lat2, double lon2,
-                double lat3, double lon3)
+double linedistprj(double lat1, double lon1,
+                   double lat2, double lon2,
+                   double lat3, double lon3,
+                   double* prjlat, double* prjlon,
+                   double* frac)
 {
 
   static double _lat1 = -9999;
@@ -153,6 +154,10 @@ double linedist(double lat1, double lon1,
 
   int newpoints;
 
+  *prjlat = lat1;
+  *prjlon = lon1;
+  *frac = 0;
+
   /* degrees to radians */
   lat1 = RAD(lat1);
   lon1 = RAD(lon1);
@@ -234,6 +239,15 @@ double linedist(double lat1, double lon1,
          * atan2 would be overkill because lp and fabs(dot) are both
          * known to be positive. */
 
+        *prjlat = DEG(asin(yp));
+        if(xp == 0 && zp == 0) {
+          *prjlon = 0;
+        }
+        else {
+          *prjlon = DEG(atan2(zp, xp));
+        }
+        *frac = d1/(d1 + d2);
+
         return atan(fabs(dot)/lp);
       }
 
@@ -262,6 +276,9 @@ double linedist(double lat1, double lon1,
       if (fabs(d1) < fabs(d2)) {
         return gcdist(lat1,lon1,lat3,lon3);
       } else {
+        *prjlat = DEG(lat2);
+        *prjlon = DEG(lon2);
+        *frac = 1.0;
         return gcdist(lat2,lon2,lat3,lon3);
       }
     } else {
@@ -280,6 +297,15 @@ double linedist(double lat1, double lon1,
   return 0;
 }
 
+
+double linedist(double lat1, double lon1,
+                double lat2, double lon2,
+                double lat3, double lon3)
+{
+  double dummy;
+  return linedistprj(lat1, lon1, lat2, lon2, lat3, lon3, &dummy, &dummy, &dummy);
+}
+
 /*
  * Compute the position of a point partially along the geodesic from
  * lat1,lon1 to lat2,lon2
index ff402cf004eec167112f4f95995f064b8a1c8b2e..273657ace9b0206e4403e43c015860ffe222bcbf 100644 (file)
@@ -26,6 +26,12 @@ double gcdist(double lat1, double lon1, double lat2, double lon2);
 double heading(double lat1, double lon1, double lat2, double lon2);
 double heading_true_degrees(double lat1, double lon1, double lat2, double lon2);
 
+double linedistprj(double lat1, double lon1,
+                   double lat2, double lon2,
+                   double lat3, double lon3,
+                   double* prjlat, double* prjlon,
+                   double* frac );
+
 double linedist(double lat1, double lon1,
                 double lat2, double lon2,
                 double lat3, double lon3);
index 668bd7539b54850013084dac2bda3cb6c61a44f6..d9016c9c74ee21c13e6e6134394f439a4695e5e0 100644 (file)
@@ -48,6 +48,9 @@
 const int BabelData::noType = -1;
 const int BabelData::fileType = 0;
 const int BabelData::deviceType = 1;
+
+#define FAKE_LANGUAGE_MENU 0
+
 //------------------------------------------------------------------------
 QString MainWindow::findBabelVersion()
 {
@@ -209,7 +212,9 @@ MainWindow::MainWindow(QWidget* parent): QMainWindow(parent)
 
   // Start up in the current system language.
   loadLanguage(QLocale::system().name());
+#if FAKE_LANGUAGE_MENU
   createLanguageMenu();
+#endif
 
   //--- Restore from registry
   restoreSettings();
@@ -239,6 +244,7 @@ MainWindow::~MainWindow()
 // http://developer.qt.nokia.com/wiki/How_to_create_a_multi_language_application
 // We create the menu entries dynamically, dependant on the existing 
 // translations.
+#if FAKE_LANGUAGE_MENU
 void MainWindow::createLanguageMenu(void)
 {
     QActionGroup* langGroup = new QActionGroup(ui.menuHelp);
@@ -274,6 +280,7 @@ void MainWindow::createLanguageMenu(void)
         }
     }
 }
+#endif //  FAKE_LANGUAGE_MENU
 
 //------------------------------------------------------------------------
 // Called every time, when a menu entry of the language menu is called
index 5eab6e3864724a782a9716c7048b104409172a96..ab07970d862ae189e290e7577190deacc6a090b4 100644 (file)
 
 #include "defs.h"
 #if CSVFMTS_ENABLED
-static char arc[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: GPSBabel arc filter format\n"
-  "# Author: Ron Parker\n"
-  "#   Date: 17 July 2003\n"
-  "#\n"
-
-  "DESCRIPTION         GPSBabel arc filter file\n"
-  "EXTENSION           txt\n"
-
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             TAB\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      LAT_HUMAN_READABLE, \"\", \"%08.5f\"\n"
-  "IFIELD      LON_HUMAN_READABLE, \"\", \"%08.5f\"\n"
-
-  "OFIELD      LAT_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD      LON_DECIMAL, \"\", \"%08.5f\"\n"
-  ;
-static char cambridge[] =
-  "DESCRIPTION     Cambridge/Winpilot glider software\n"
-  "SHORTLEN        8\n"
-  "EXTENSION dat\n"
-  "#\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER         COMMA\n"
-  "RECORD_DELIMITER        NEWLINE\n"
-  "BADCHARS                COMMA\n"
-
-  "IFIELD INDEX,\"1\",\"%d\"\n"
-  "IFIELD LAT_HUMAN_READABLE,\"\",\"%d:%06.3f%c\"\n"
-  "IFIELD LON_HUMAN_READABLE,\"\",\"%03d:%06.3f%c\"\n"
-  "IFIELD ALT_METERS,\"\",\"%3.0fM\"\n"
-  "IFIELD CONSTANT,\"\",\"T\"\n"
-  "IFIELD SHORTNAME,\"\",\"%s\"\n"
-  "IFIELD DESCRIPTION,\"\",\"%s\"\n"
-  ;
-static char csv[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: DeLorme SA 9.0 CSV\n"
-  "# Author: Alex Mottram\n"
-  "#   Date: 12/09/2002\n"
-  "#\n"
-  "# \n"
-  "DESCRIPTION Comma separated values\n"
-  "SHORTLEN    8\n"
-  "#\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COMMASPACE\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            COMMA\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      LAT_HUMAN_READABLE, \"\", \"%08.5f\"\n"
-  "IFIELD      LON_HUMAN_READABLE, \"\", \"%08.5f\"\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"\n"
-
-  "OFIELD      LAT_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD      LON_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD      DESCRIPTION, \"\", \"%s\"\n"
-  ;
-static char cup[] =
-  "#\n"
-  "# (c) 2006, Robert Lipe, based on  sample files by Krzysztof Wojtas\n"
-  "# Reference info: http://www.seeyou.ws/thankyou.php?fname=cup_format.pdf\n"
-  "#\n"
-
-  "DESCRIPTION      See You flight analysis data\n"
-  "SHORTLEN  8\n"
-  "EXTENSION cup\n"
-  "#\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER         COMMA\n"
-  "RECORD_DELIMITER        NEWLINE\n"
-  "BADCHARS                ,\"\n"
-  "PROLOGUE name,code,country,lat,lon,elev,style,rwdir,rwlen,freq,desc\n"
-  "EPILOGUE -----Related Tasks-----\n"
-
-
-  "IFIELD SHORTNAME,\"\", \"\"%s\"\"\n"
-  "IFIELD SHORTNAME,\"\", \"%s\"\n"
-  "IFIELD CONSTANT,\"\", \"\"\n"
-  "IFIELD LAT_DDMMDIR, \"%f\", \"%08.3f\", \"absolute\"\n"
-  "IFIELD LON_DDMMDIR, \"%f\", \"%09.3f\", \"absolute\"\n"
-  "IFIELD ALT_METERS,\"\", \"%dm\"\n"
-  "IFIELD CONSTANT,\"\", \"1\"\n"
-  "IFIELD CONSTANT,\"\", \"\"\n"
-  "IFIELD CONSTANT,\"\", \"\"\n"
-  "IFIELD CONSTANT,\"\", \"\"\n"
-  "IFIELD DESCRIPTION,\"\", \"\"%s\"\"\n"
-
-  "OFIELD SHORTNAME,\"\", \"\"%s\"\"\n"
-  "OFIELD SHORTNAME,\"\", \"%s\"\n"
-  "OFIELD CONSTANT,\"\", \"\"\n"
-  "OFIELD LAT_DDMMDIR, \"\", \"%08.3f%c\"\n"
-  "OFIELD LON_DDMMDIR, \"\", \"%09.3f%c\"\n"
-  "OFIELD ALT_METERS,\"\", \"%3.1fm\"\n"
-  "OFIELD CONSTANT,\"\", \"1\"\n"
-  "OFIELD CONSTANT,\"\", \"\"\n"
-  "OFIELD CONSTANT,\"\", \"\"\n"
-  "OFIELD CONSTANT,\"\", \"\"\n"
-  "OFIELD DESCRIPTION,\"\", \"\"%s\"\"\n"
-
-
-  ;
-static char custom[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: Custom \"Everything\" Style\n"
-  "# Author: Alex Mottram\n"
-  "#   Date: 11/24/2002\n"
-  "#\n"
-  "#\n"
-
-  "DESCRIPTION         Custom \"Everything\" Style\n"
-
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COMMA\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            COMMA\n"
-  "FORMAT_TYPE         INTERNAL\n"
-
-  "#\n"
-  "# HEADER STUFF:\n"
-  "#\n"
-  "PROLOGUE    Prologue Line 1 __FILE__\n"
-  "PROLOGUE    Prologue Line 2\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS:\n"
-  "#\n"
-  "IFIELD      CONSTANT, \"CONSTANT\", \"%s\"\n"
-  "IFIELD      INDEX, \"\", \"%d\"\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%f\"\n"
-  "IFIELD      LAT_DIR, \"\", \"%c\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%f\"\n"
-  "IFIELD      LON_DIR, \"\", \"%c\"\n"
-  "IFIELD      ICON_DESCR, \"\", \"%s\"\n"
-  "IFIELD      SHORTNAME, \"\", \"%s\"\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"\n"
-  "IFIELD      NOTES, \"\", \"%s\"\n"
-  "IFIELD      URL, \"\", \"%s\"               \n"
-  "IFIELD      URL_LINK_TEXT, \"\", \"%s\"\n"
-  "IFIELD      ALT_METERS, \"\", \"%fM\"\n"
-  "IFIELD      ALT_FEET, \"\", \"%fF\"\n"
-  "IFIELD      LAT_DECIMALDIR, \"\", \"%f/%c\"\n"
-  "IFIELD      LON_DECIMALDIR, \"\", \"%f/%c\"\n"
-  "IFIELD      LAT_DIRDECIMAL, \"\", \"%c/%f\"\n"
-  "IFIELD      LON_DIRDECIMAL, \"\", \"%c/%f\"\n"
-  "IFIELD      LAT_INT32DEG, \"\", \"%ld\"\n"
-  "IFIELD      LON_INT32DEG, \"\", \"%ld\"\n"
-  "IFIELD      TIMET_TIME, \"\", \"%ld\"\n"
-  "IFIELD      EXCEL_TIME, \"\", \"%f\"\n"
-
-  "# EPILOGUE: \n"
-  "EPILOGUE    Epilogue Line 1\n"
-  "EPILOGUE    Epilogue Line 2\n"
-  ;
-static char dna[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: DNA Marker Format\n"
-  "# Author: Alex Mottram\n"
-  "#   Date: 12/09/2002\n"
-  "#\n"
-  "# \n"
-  "# As defined in dna.c\n"
-  "#\n"
-  "#\n"
-
-  "DESCRIPTION                 Navitrak DNA marker format\n"
-  "EXTENSION           dna\n"
-
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COMMA\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            COMMA\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      INDEX, \"\", \"%d\"\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%08.5f\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%08.5f\"\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"\n"
-
-  ;
-static char flysight[] =
-  "# Format:   FlySight\n"
-  "# Author:   LukeH\n"
-  "# Date:             10/10/10\n"
-
-  "DESCRIPTION         FlySight GPS File\n"
-  "EXTENSION           csv\n"
-
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "FIELD_DELIMITER COMMA\n"
-  "RECORD_DELIMITER NEWLINE\n"
-  "BADCHARS ,\"\n"
-
-  "PROLOGUE time lat lon hMSL velN velE velD hAcc vAcc sAcc gpsFix numSV\n"
-  "PROLOGUE\n"
-
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "IFIELD ISO_TIME,    \"\",   \"%s\"  # Date & time\n"
-  "IFIELD LAT_DECIMAL, \"\",   \"%f\"  # Latitude\n"
-  "IFIELD LON_DECIMAL, \"\",   \"%f\"  # Longitude\n"
-  "IFIELD ALT_METERS,  \"\",   \"%.0f\"        # Altitude above MSL (m)\n"
-  "IFIELD IGNORE,              \"\",   \"%s\"  # Velocity north (m/s)\n"
-  "IFIELD IGNORE,              \"\",   \"%s\"  # Velocity east (m/s)\n"
-  "IFIELD IGNORE,              \"\",   \"%s\"  # Velocity down (m/s)\n"
-  "IFIELD IGNORE,              \"\",   \"%s\"  # Horizontal accuracy (m)\n"
-  "IFIELD IGNORE,              \"\",   \"%s\"  # Vertical accuracy (m)\n"
-  "IFIELD IGNORE,              \"\",   \"%s\"  # Speed accuracy (m/s)\n"
-  "IFIELD GPS_FIX,             \"\",   \"%s\"  # GPS fix type\n"
-  "IFIELD GPS_SAT,             \"\",   \"%d\"  # Number of satellites used in fix\n"
-  ;
-static char fugawi[] =
-  "# fugawi XCSV style file\n"
-  "#\n"
-  "# Format: Fugawi\n"
-  "# Author: Robert Lipe, Patrick Ohly\n"
-  "#   Date: 07/24/2005\n"
-  "#\n"
-  "# \n"
-
-  "DESCRIPTION         Fugawi\n"
-  "EXTENSION           txt\n"
-  "SHORTLEN            10\n"
-
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COMMA\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            COMMA\n"
-
-  "PROLOGUE \\# Latitude, Longitude and UTM coordinates are in WGS84 datum\n"
-  "PROLOGUE \\#\n"
-  "PROLOGUE \\# Every set of data contains the following:\n"
-  "PROLOGUE \\#\n"
-  "PROLOGUE \\# Waypoint name\n"
-  "PROLOGUE \\# Waypoint comment\n"
-  "PROLOGUE \\# Waypoint description\n"
-  "PROLOGUE \\# Latitude in Degree and decimals (soutern hemisphere has neg. degrees)\n"
-  "PROLOGUE \\# Longitude in degree and decimals (neg. numbers: west of Greenwich)\n"
-  "PROLOGUE \\# Height in meters [optional when importing, always present when exporting: Date (GMT) as ISO YYYYMMDD, Time of the day relative to the date as HHMMSS\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      SHORTNAME, \"\", \"%s\"\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"\n"
-  "IFIELD      NOTES, \"\", \"%s\"\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%-.7f\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%-.7f\"\n"
-  "IFIELD      ALT_METERS, \"\", \"%-7.1f\"\n"
-  "IFIELD  GMT_TIME, \"\", \"%Y%m%d\"\n"
-  "IFIELD  HMSG_TIME, \"\", \"%02d%02d%02d\"\n"
-  ;
-static char garmin301[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: Garmin 301 Position + Heartrate data\n"
-  "# Author: Jeff Kalikstein\n"
-  "#   Date: 08/29/2005\n"
-  "#\n"
-
-  "DESCRIPTION         Garmin 301 Custom position and heartrate\n"
-
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COMMA\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            COMMA\n"
-  "#FORMAT_TYPE                INTERNAL\n"
-
-  "#\n"
-  "# HEADER STUFF:\n"
-  "#\n"
-  "PROLOGUE    Garmin 301 data __FILE__ \n"
-  "PROLOGUE    Timestamp,Latitude, Longitude, Altitude(ft), heart rate\n"
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS:\n"
-  "#\n"
-  "IFIELD      TIMET_TIME,\"\",\"%ld\"\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%f\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%f\"\n"
-  "IFIELD      ALT_FEET, \"\", \"%fF\"\n"
-  "IFIELD  HEART_RATE,\"\",\" %d\"     # beats per minute\n"
-
-
-  "# EPILOGUE: \n"
-  "#EPILOGUE   Epilogue Line 1\n"
-  "#EPILOGUE   Epilogue Line 2\n"
-  ;
-static char garmin_poi[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: Garmin POI\n"
-  "# Author: Robert Lipe\n"
-  "# Date: 10/07/2005\n"
-  "# Reference: http://forums.groundspeak.com/GC/index.php?showtopic=110641&st=0&#entry1752204\n"
-  "#\n"
-  "DESCRIPTION Garmin POI database\n"
-  "#\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER COMMA\n"
-  "RECORD_DELIMITER NEWLINE\n"
-  "BADCHARS COMMA\n"
-  "SHORTLEN 24\n"
-  "# PROLOGUE Longitude,Latitude,Name, comment\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD LON_HUMAN_READABLE, \"\", \"%08.5f\"\n"
-  "IFIELD LAT_HUMAN_READABLE, \"\", \"%08.5f\"\n"
-  "IFIELD SHORTNAME, \"\", \"%s\"\n"
-  "IFIELD DESCRIPTION, \"\", \"%s\"\n"
-
-  "OFIELD LON_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD LAT_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD SHORTNAME, \"\", \"%-.24s\"\n"
-  "OFIELD GEOCACHE_TYPE, \"\", \" %-.4s\", \"no_delim_before,optional\"\n"
-  "OFIELD GEOCACHE_CONTAINER, \"\", \"/%-.4s \", \"no_delim_before,optional\"\n"
-  "OFIELD GEOCACHE_DIFF, \"\", \"(%3.1f\", \"no_delim_before,optional\"\n"
-  "OFIELD GEOCACHE_TERR, \"\", \"/%3.1f)\", \"no_delim_before,optional\"\n"
-  "OFIELD DESCRIPTION, \"\", \"%-.50s\"\n"
-  ;
-static char geonet[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: GEOnet Names Server (GNS) (http://earth-info.nga.mil/gns/html/cntry_files.html)\n"
-  "# Author: Olaf Klein\n"
-  "#   Date: 08/20/2002\n"
-  "#\n"
-
-  "DESCRIPTION         GEOnet Names Server (GNS)\n"
-  "EXTENSION           txt\n"
-
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-
-  "FIELD_DELIMITER             TAB\n"
-  "RECORD_DELIMITER    CRNEWLINE\n"
-  "BADCHARS            TAB\n"
-  "ENCODING            UTF-8\n"
-
-  "PROLOGUE            RC      UFI     UNI     LAT     LONG    DMS_LAT DMS_LONG        UTM     JOG     FC      DSG     PC      CC1     ADM1    ADM2    DIM     CC2     NT      LC      SHORT_FORM      GENERIC SORT_NAME       FULL_NAME       FULL_NAME_ND    MODIFY_DATE\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # RC            ( http://earth-info.nga.mil/gns/html/gis_contryfiles.html )\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # UFI\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # UNI\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%03.7f\"   # LAT\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%03.7f\"   # LONG\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # DMS_LAT\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # DMS_LONG\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # UTM\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # JOG\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # FC\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # DSG\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # PC\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # CC1\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # ADM1\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # ADM2\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # DIM\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # CC2\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # NT\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # LC\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # SHORT_FORM\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # GENERIC\n"
-  "IFIELD      SHORTNAME, \"\", \"%s\"         # SHORT_NAME\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"               # FULL_NAME\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # FULL_NAME_ND\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # MOD_DATE\n"
-  ;
-static char gpsdrive[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: GPSDrive\n"
-  "# Author: Alex Mottram\n"
-  "#   Date: 12/11/2002\n"
-  "#\n"
-  "# \n"
-  "#\n"
-
-  "DESCRIPTION         GpsDrive Format\n"
-
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             WHITESPACE\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            ,'\"\n"
-
-  "SHORTLEN            20\n"
-  "SHORTWHITE              0\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-
-  "IFIELD      SHORTNAME, \"\", \"%s\"\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%08.5f\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%08.5f\"\n"
-  "IFIELD      ICON_DESCR, \"\", \"%s\"\n"
-
-  "OFIELD      ANYNAME, \"\", \"%s\"\n"
-  "OFIELD      LAT_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD      LON_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD      ICON_DESCR, \"\", \"%s\"\n"
-  ;
-static char gpsdrivetrack[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: GPSDriveTrack\n"
-  "# Author: Tobias Minich\n"
-  "#   Date: 12/07/2005\n"
-  "#\n"
-  "# \n"
-  "#\n"
-
-  "DESCRIPTION         GpsDrive Format for Tracks\n"
-
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             WHITESPACE\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            ,'\"\n"
-
-  "SHORTLEN            20\n"
-  "SHORTWHITE              0\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-
-  "IFIELD      LAT_DECIMAL, \"\", \"%10.6f\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%10.6f\"\n"
-  "IFIELD      ALT_METERS, \"\", \"%10.0f\"\n"
-  "# Reports are that this format stores in local time, not GMT as \n"
-  "# originally thought.\n"
-  "# IFIELD    GMT_TIME, \"\", \"%a %b %d %H:%M:%S %Y\"\n"
-  "IFIELD      LOCAL_TIME, \"\", \"%a %b %d %H:%M:%S %Y\"\n"
-  ;
-static char gpsman[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: GPSMAN Format\n"
-  "# Author: Alex Mottram\n"
-  "#   Date: 12/09/2002\n"
-  "#\n"
-  "# \n"
-  "# As defined in gpsman.c\n"
-  "#\n"
-  "#\n"
-
-  "DESCRIPTION         GPSman\n"
-  "SHORTLEN            8\n"
-  "SHORTWHITE          0\n"
-
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             TAB\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            TAB\n"
-
-  "PROLOGUE    !Format: DDD 1 WGS 84\n"
-  "PROLOGUE    !W:\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      SHORTNAME, \"\", \"%-8.8s\"\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"\n"
-  "IFIELD      LAT_DIRDECIMAL, \"\", \"%c%f\"\n"
-  "IFIELD      LON_DIRDECIMAL, \"\", \"%c%f\"\n"
-  "IFIELD      IGNORE, \"\", \"%s\"\n"
-
-  "# gpsman.c likes mkshort len = 8, whitespace = 0.\n"
-  ;
-static char iblue747[] =
-  "# GPSBabel XCSV Style File http://www.gpsbabel.org/htmldoc-development/Styles.html\n"
-  "# Author: Christian Barmala http://www.barmala.de/\n"
-  "# License GNU Public License http://opensource.org/licenses/gpl-license.php\n"
-
-  "DESCRIPTION  Data Logger iBlue747 csv\n"
-  "EXTENSION csv\n"
-  "# full length csv with all options\n"
-
-  "# FILE LAYOUT DEFINITIIONS:\n"
-
-  "FIELD_DELIMITER COMMA\n"
-  "RECORD_DELIMITER NEWLINE\n"
-  "# BADCHARS COMMA\n"
-  "# SHORTLEN 16\n"
-  "# SHORTWHITE 0\n"
-  "# ENCODING UTF-8\n"
-  "DATATYPE TRACK\n"
-  "PROLOGUE INDEX,RCR,DATE,TIME,VALID,LATITUDE,N/S,LONGITUDE,E/W,HEIGHT,SPEED,PDOP,HDOP,VDOP,NSAT,DISTANCE,\n"
-
-
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-
-  "IFIELD INDEX,\"1\",\"%d\"            # INDEX\n"
-  "IFIELD CONSTANT,\"T\",\"%s\"        # RCR\n"
-  "IFIELD GMT_TIME,\"\",\"%Y/%m/%d\"        # DATE\n"
-  "IFIELD HMSG_TIME,\"\",\"%02d:%02d:%02d\"    # TIME\n"
-  "IFIELD GPS_FIX,\"\",\"%s\"        # VALID #  No fix, SPS, DGPS, PPS\n"
-  "IFIELD LAT_DECIMAL,\"\",\"%f\"        # LATITUDE\n"
-  "IFIELD LAT_DIR,\"\",\"%c\"            # N/S\n"
-  "IFIELD LON_DECIMAL,\"\",\"%f\"        # LONGITUDE\n"
-  "IFIELD LON_DIR,\"\",\"%c\"            # E/W\n"
-  "IFIELD ALT_METERS,\"\",\"%.0f\"        # HEIGHT\n"
-  "IFIELD PATH_SPEED_KPH,\"\",\"%.1f\"        # SPEED\n"
-  "IFIELD IGNORE,\"\",\"%f\"        # HEADING\n"
-  "IFIELD IGNORE,\"\",\"%d\"        # DSTA\n"
-  "IFIELD IGNORE,\"\",\"%f\"        # DAGE\n"
-  "IFIELD GPS_PDOP,\"\",\"%f\"            # PDOP\n"
-  "IFIELD GPS_HDOP,\"\",\"%f\"            # HDOP\n"
-  "IFIELD GPS_VDOP,\"\",\"%f\"            # VDOP\n"
-  "IFIELD GPS_SAT,\"\",\"%d(\"            # NSAT USED/VIEW\n"
-  "IFIELD IGNORE,\"\",\"%s\"        # SAT INFO\n"
-  "IFIELD PATH_DISTANCE_KM,\"\",\"%f\"        # DISTANCE\n"
-  ;
-static char igo2008_poi[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: iGO2008 points of interest\n"
-  "# Author: Olaf Klein\n"
-  "#   Date: 09/05/2008\n"
-  "#\n"
-  "DESCRIPTION         iGO2008 points of interest (.upoi)\n"
-  "EXTENSION           upoi\n"
-  "DATATYPE            WAYPOINT\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             PIPE\n"
-  "RECORD_DELIMITER    CRNEWLINE\n"
-  "BADCHARS            \"|\n"
-  "ENCODING            MS-ANSI\n"
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      INDEX,\"1\",\"%d\"\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"\n"
-  "IFIELD      SHORTNAME, \"\", \"%s\"\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # nothing\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%.6f\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%.6f\"\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # Name of map\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # nothing\n"
-  "IFIELD      POSTAL_CODE, \"\", \"%s\"\n"
-  "IFIELD      CITY, \"\", \"%s\"\n"
-  "IFIELD      STREET_ADDR, \"\", \"%s\"               # Street without number\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # Street number\n"
-  "IFIELD      NOTES, \"\", \"%s\"\n"
-  "IFIELD      PHONE_NR, \"\", \"%s\"\n"
-  ;
-static char kompass_tk[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: Kompass / Deutscher Alpenverein (DAV) Waypoints\n"
-  "# Author: Olaf Klein\n"
-  "#   Date: 01/10/2007\n"
-  "#\n"
-  "# \n"
-  "DESCRIPTION         Kompass (DAV) Track (.tk)\n"
-  "DATATYPE            TRACK\n"
-  "EXTENSION           wp\n"
-  "FIELD_DELIMITER             COMMA\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            ,\"\n"
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%.7f\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%.7f\"\n"
-  ;
-static char kompass_wp[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: Kompass / Deutscher Alpenverein (DAV) Waypoints\n"
-  "# Author: Olaf Klein\n"
-  "#   Date: 01/10/2007\n"
-  "#\n"
-  "# \n"
-  "DESCRIPTION         Kompass (DAV) Waypoints (.wp)\n"
-  "DATATYPE            WAYPOINT\n"
-  "EXTENSION           wp\n"
-  "ENCODING            UTF-8\n"
-  "FIELD_DELIMITER             SEMICOLON\n"
-  "RECORD_DELIMITER    CRNEWLINE\n"
-  "BADCHARS            ,\"\n"
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      SHORTNAME, \"\", \"%s\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%.7f\"\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%.7f\"\n"
-  "IFIELD      ALT_METERS, \"\", \"%.0f\"\n"
-  "IFIELD      LOCAL_TIME,\"\",\"%d.%m.%Y %H:%M:%S\"\n"
-  "IFIELD      CONSTANT, \"Icons\\Wegpunkt grün.bmp\", \"%s\"\n"
-  "IFIELD      IGNORE, \"\", \"%s\"\n"
-  "IFIELD  CONSTANT, \"1\", \"%s\"                     # unknown\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"\n"
-  ;
-static char ktf2[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: Kartex KTF 2.0 Degrees with decimals\n"
-  "# Author: Harald Nordius\n"
-  "#   Date: 4/13 2006\n"
-  "#\n"
-  "# \n"
-  "DESCRIPTION Kartex 5 Track File\n"
-  "EXTENSION   ktf\n"
-  "DATATYPE    TRACK\n"
-  "SHORTLEN    10\n"
-  "SHORTWHITE  1\n"
-  "#\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COMMA\n"
-  "RECORD_DELIMITER    CRNEWLINE\n"
-  "#\n"
-  "#\n"
-  "# FILE HEADER\n"
-  "#\n"
-  "PROLOGUE //Kartex Track File created by GPSBabel\n"
-  "PROLOGUE &KTF 2.0,sweref 99 lat long,0\n"
-  "#\n"
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      CONSTANT, %, \"%s\"\n"
-  "IFIELD      INDEX, \"\", \"%d\"\n"
-  "IFIELD      LATLON_HUMAN_READABLE, \"\", \"%c%f°\"\n"
-  "IFIELD      ALT_METERS, \"\", \"%.2f\"\n"
-  "IFIELD      GMT_TIME, \"\", \"%Y-%m-%d %H:%M:%S\"\n"
-  "IFIELD      IGNORE, \"\", \"%s\" #Empty field\n"
-  "IFIELD      IGNORE, \"\", \"%s\" #Empty field\n"
-  "IFIELD      CONSTANT, \"$\", \"%s\"\n"
-  ;
-static char kwf2[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: Kartex KWF 2.0 Degrees with decimals\n"
-  "# Author: Harald Nordius\n"
-  "#   Date: 12/08 2004\n"
-  "#\n"
-  "# \n"
-  "DESCRIPTION Kartex 5 Waypoint File\n"
-  "EXTENSION   kwf\n"
-  "SHORTLEN    10\n"
-  "SHORTWHITE  1\n"
-  "#\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COMMA\n"
-  "RECORD_DELIMITER    CRNEWLINE\n"
-  "ENCODING            CP1252\n"
-  "#\n"
-  "#\n"
-  "# FILE HEADER\n"
-  "#\n"
-  "PROLOGUE //Kartex Waypoint File created by GPSBabel\n"
-  "PROLOGUE &KWF 2.0,sweref 99 lat long,0\n"
-  "#\n"
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      CONSTANT, \\#, \"%s\"\n"
-  "IFIELD      INDEX,\"\",\"%d\"\n"
-  "IFIELD      SHORTNAME,\"\",\"%s\"\n"
-  "IFIELD      LATLON_HUMAN_READABLE,\"\",\"%c%f°\"\n"
-  "IFIELD      ALT_METERS,\"\",\"%.2f\"\n"
-  "IFIELD      IGNORE, \"\",\"%s\" #Empty field\n"
-  "IFIELD      IGNORE, \"\",\"%s\" #Empty field\n"
-  "IFIELD      CONSTANT, \"0\",\"%s\" #Waypoint symbol code\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"\n"
-  "IFIELD      CONSTANT, \"$\", \"%s\"\n"
-  ;
-static char land_air_sea[] =
-  "# Format: GPS Tracking Key Pro text file\n"
-  "# Author: Tyler Ritchie\n"
-  "#   Date: 2011.02.04\n"
-
-  "DESCRIPTION GPS Tracking Key Pro text\n"
-  "EXTENSION txt\n"
-  "ENCODING LATIN1\n"
-
-  "DATUM WGS 84\n"
-  "DATATYPE TRACK\n"
-  "#File layout definitions\n"
-
-  "FIELD_DELIMITER COMMA\n"
-  "RECORD_DELIMITER NEWLINE\n"
-
-  "# Individual data fields in order of appearance\n"
-
-  "IFIELD LOCAL_TIME,\"\",\"%m-%d-%Y\"\n"
-  "IFIELD HMSG_TIME,\"\",\"%d:%d:%d\"\n"
-  "IFIELD LAT_HUMAN_READABLE,\"\",\"%c %d°%d'%f\\\"\"\n"
-  "IFIELD LON_HUMAN_READABLE,\"\",\"%c %d°%d'%f\\\"\"\n"
-  "IFIELD PATH_SPEED_MPH,\"\",\"%.1fmph\"\n"
-  "IFIELD IGNORE,\"\",\"%s\" #This is the bearing data\n"
-  "IFIELD ALT_FEET,\"\",\"%dft\"\n"
-  ;
-static char mapconverter[] =
-  "# Format: Mapopolis.com Mapconverter\n"
-  "# Author: Gary Paulson\n"
-  "#   Date: 01/13/2003\n"
-  "# Requires unsupported mapconverter.exe from mapopolis.com.\n"
-  "#\n"
-  "# Modifications by Alex Mottram documented 6/30/2003\n"
-  "# Change %-40.40s on description output to %-.40s to stop padding.\n"
-  "# Add QUOTE as badchars, remove COMMA.\n"
-  "# Removed Mapconverter.exe's README information from style file.\n"
-  "# Changed OFIELD to IFIELD in case you ever want to read one of these things.\n"
-  "#\n"
-  "#\n"
-  "DESCRIPTION         Mapopolis.com Mapconverter CSV\n"
-  "EXTENSION           txt\n"
-
-  "# FILE LAYOUT DEFINITIIONS:\n"
-
-  "FIELD_DELIMITER   COMMASPACE\n"
-  "RECORD_DELIMITER  NEWLINE\n"
-  "BADCHARS          \",\n"
-
-  "# Map Info Record (header):\n"
-  "PROLOGUE M, \"Geocaches\", \"GPSBabel\", Geocaches, __FILE__\n"
-  "#\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "# L Records:\n"
-  "IFIELD  CONSTANT, \"L\", \"%s\"             # [L]ANDMARK\n"
-  "IFIELD  CONSTANT, \"Geocaches\", \"%s\"     # Category for Landmark Searches\n"
-  "IFIELD  DESCRIPTION, \"\", \"%-.40s\"       # Name\n"
-  "IFIELD  CONSTANT, \"1\", \"%s\"             # View at Zoom Level 1 (1-4)\n"
-  "IFIELD  LON_DECIMAL, \"\", \"%08.5f\"       # Longitude\n"
-  "IFIELD  LAT_DECIMAL, \"\", \"%08.5f\"       # Latitude\n"
-  ;
-static char mxf[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: Ozi Explorer\n"
-  "# Author: Alex Mottram\n"
-  "#   Date: 12/09/2002\n"
-  "#\n"
-  "# \n"
-  "# As used in mxf.c\n"
-  "#\n"
-  "#\n"
-
-  "DESCRIPTION         MapTech Exchange Format\n"
-  "EXTENSION           mxf\n"
-
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COMMASPACE\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            ,\"\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%08.5f\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%08.5f\"\n"
-  "IFIELD      DESCRIPTION, \"\", \"\"%s\"\"\n"
-  "IFIELD      SHORTNAME, \"\", \"\"%s\"\"\n"
-  "IFIELD      IGNORE, \"\", \"%s\"\n"
-  "IFIELD      CONSTANT, \"ff0000\", \"%s\"    # COLOR\n"
-  "IFIELD      CONSTANT, \"47\", \"%s\"                # ICON\n"
-
-  "OFIELD      LAT_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD      LON_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD      DESCRIPTION, \"\", \"\"%s\"\"\n"
-  "OFIELD      SHORTNAME, \"\", \"\"%s\"\"\n"
-  "OFIELD      DESCRIPTION, \"\", \"\"%s\"\"\n"
-  "OFIELD      CONSTANT, \"ff0000\", \"%s\"    # COLOR\n"
-  "OFIELD      CONSTANT, \"47\", \"%s\"                # ICON\n"
-  ;
-static char navigonwpt[] =
-  "# gpsbabel XCSV style file\n"
-  "# Author: Tom Glaab\n"
-  "#\n"
-  "DESCRIPTION     Navigon Waypoints\n"
-  "SHORTLEN        8\n"
-  "#\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER         |\n"
-  "RECORD_DELIMITER        NEWLINE\n"
-  "BADCHARS                |\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-
-  "OFIELD  SHORTNAME, \"\",\"[%-.14s \"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"\",\"]\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"[0][17]\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  LON_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD  LAT_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"\"\n"
-  "OFIELD  CONSTANT, \"%s\",\"49\"\n"
-  ;
-static char nima[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: NIMA/GNIS Geographic Names File\n"
-  "# Author: Alex Mottram\n"
-  "#   Date: 11/24/2002\n"
-  "#\n"
-
-  "DESCRIPTION  NIMA/GNIS Geographic Names File\n"
-
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             TAB\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            TAB\n"
-  "PROLOGUE    RC      UFI     UNI     DD_LAT  DD_LONG DMS_LAT DMS_LONG        UTM     JOG     FC      DSG     PC      CC1     ADM1    ADM2    DIM     CC2     NT      LC      SHORT_FORM      GENERIC SORT_NAME       FULL_NAME       FULL_NAME_ND    MODIFY_DATE\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # RC\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # UFI\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # UNI\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%f\"               # DD_LAT\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%f\"               # DD_LON\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # DMS_LAT\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # DMS_LON\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # UTM\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # JOG\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # FC\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # DSG\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # PC\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # CC1\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # ADM1\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # ADM2\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # DIM\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # CC2\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # NT\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # LC\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # SHORT_FORM\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # GENERIC\n"
-  "IFIELD      SHORTNAME, \"\", \"%s\"         # SORT_NAME \n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # FULL_NAME (unicoded!)\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"               # FULL_NAME_ND\n"
-  "IFIELD      IGNORE, \"\", \"%s\"            # MODIFY_DATE\n"
-  ;
-static char openoffice[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: Tab delimited useful for OpenOffice, Ploticus etc.\n"
-  "# Author: Tobias Minich\n"
-  "#   Date: 07/18/2005\n"
-  "#\n"
-  "#\n"
-
-  "DESCRIPTION         Tab delimited fields useful for OpenOffice, Ploticus etc.\n"
-
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             TAB\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            TAB\n"
-
-  "#\n"
-  "# HEADER STUFF:\n"
-  "#\n"
-  "PROLOGUE    Index   Lat                     Lon                     Icon    Name    Description     Notes   URL     Link Text       Altitude (m)    Distance (km)   Speed (m/s)     Course (°)      Time    HDOP    VDOP    PDOP    Satellites      Fix\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS:\n"
-  "#\n"
-  "IFIELD      INDEX, \"\", \"%d\"\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%f\"\n"
-  "IFIELD      LAT_DIR, \"\", \"%c\"\n"
-  "IFIELD      LAT_HUMAN_READABLE, \"\", \"%d° %f' %c\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%f\"\n"
-  "IFIELD      LON_DIR, \"\", \"%c\"\n"
-  "IFIELD      LON_HUMAN_READABLE, \"\", \"%d° %f' %c\"\n"
-  "IFIELD      ICON_DESCR, \"\", \"%s\"\n"
-  "IFIELD      SHORTNAME, \"\", \"%s\"\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"\n"
-  "IFIELD      NOTES, \"\", \"%s\"\n"
-  "IFIELD      URL, \"\", \"%s\"               \n"
-  "IFIELD      URL_LINK_TEXT, \"\", \"%s\"\n"
-  "IFIELD      ALT_METERS, \"\", \"%f\"\n"
-  "IFIELD      PATH_DISTANCE_KM, \"\", \"%f\"\n"
-  "IFIELD      PATH_SPEED, \"\", \"%f\"\n"
-  "IFIELD      PATH_COURSE, \"\", \"%f\"\n"
-  "IFIELD      EXCEL_TIME, \"\", \"%f\"\n"
-  "IFIELD      GPS_HDOP, \"\", \"%f\"\n"
-  "IFIELD      GPS_VDOP, \"\", \"%f\"\n"
-  "IFIELD      GPS_PDOP, \"\", \"%f\"\n"
-  "IFIELD      GPS_SAT, \"\", \"%d\"\n"
-  "IFIELD      GPS_FIX, \"\", \"%s\"\n"
-  ;
-static char ricoh[] =
-  "DESCRIPTION Ricoh GPS Log File\n"
-  "EXTENSION log\n"
-  "DATATYPE TRACK\n"
-
-  "FIELD_DELIMITER COMMA\n"
-  "RECORD_DELIMITER NEWLINE\n"
-
-  "IFIELD LON_DECIMAL,\"\",\"%f\"\n"
-  "IFIELD LAT_DECIMAL,\"\",\"%f\"\n"
-  "IFIELD ALT_METERS,\"\",\"%f\"\n"
-  "IFIELD TRACK_NEW,\"\",\"%d\"\n"
-  "IFIELD GMT_TIME,\"\",\"%d-%m-%Y %H:%M:%S\"\n"
-
-  ;
-static char s_and_t[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: MS S&T 2002/2003\n"
-  "# Author: Alex Mottram\n"
-  "#   Date: 12/09/2002\n"
-  "#\n"
-  "# \n"
-  "# As requested by Noel Shrum on the gpsbabel-code mailing list.\n"
-  "# Name,Latitude,Longitude,Name 2,URL,Type\n"
-  "# GCCBF,44.479133,-85.56515,High Rollaway by rjlint,http://www.geocaching.com/seek/cache_details.aspx?ID=3263,Traditional Cache\n"
-  "# GC110D,44.6522,-85.492483,Brown Bridge Pond Peek-a-Boo Cache by Big Bird,http://www.geocaching.com/seek/cache_details.aspx?ID=4365,Traditional Cache\n"
-  "# GC171C,44.70605,-85.62265,The Michigan Frog by RealDcoy & LRB,http://www.geocaching.com/seek/cache_details.aspx?ID=5916,Traditional Cache\n"
-  "#\n"
-
-  "DESCRIPTION                 Microsoft Streets and Trips 2002-2007\n"
-  "EXTENSION               txt\n"
-
-
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             TAB\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            ,\"\n"
-
-  "PROLOGUE    Name    Latitude        Longitude       Description     URL     Type    Container       Diff    Terr\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "# NOTE: MS S&T ONLY IMPORTS DATA, IT DOESN'T EXPORT THIS ANYWHERE SO WE CAN\n"
-  "#       HAVE OUR WAY WITH THE FORMATTING. \n"
-  "#\n"
-  "IFIELD      SHORTNAME, \"\", \"%s\"         # Name\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%f\"               # Latitude\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%f\"               # Longitude\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"               # Name 2 (Big Description)\n"
-  "IFIELD      URL, \"\", \"%s\"                       # URL\n"
-  "IFIELD      GEOCACHE_TYPE, \"\", \"%s\"             # Geocache Type\n"
-  "IFIELD      GEOCACHE_CONTAINER, \"\", \"%s\"        # Geocache Type\n"
-  "IFIELD      GEOCACHE_DIFF, \"\", \"%3.1f\"  # Geocache Type\n"
-  "IFIELD      GEOCACHE_TERR, \"\", \"%3.1f\"  # Geocache Type\n"
-  ;
-static char saplus[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: \n"
-  "# Author: Jim Bensman\n"
-  "#   Date: 02/22/04\n"
-  "#\n"
-
-  "DESCRIPTION             DeLorme Street Atlas Plus\n"
-
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER         COMMA\n"
-  "RECORD_DELIMITER        NEWLINE\n"
-  "BADCHARS                ,\"\n"
-
-  "PROLOGUE        Name 2,Name,Latitude,Longitude,URL,Type\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD  DESCRIPTION, \"\", \"%s\"           # Name 2 (Big Description)\n"
-  "IFIELD  SHORTNAME, \"\", \"%s\"             # Name\n"
-  "IFIELD  LAT_DECIMAL, \"\", \"%f\"           # Latitude\n"
-  "IFIELD  LON_DECIMAL, \"\", \"%f\"           # Longitude\n"
-  "IFIELD  URL, \"\", \"%s\"                   # URL\n"
-  "IFIELD  IGNORE, \"\", \"\"                  # Holder for Geocache Type\n"
-
-  ;
-static char sportsim[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: Sportsim track files\n"
-  "# Author: Olaf Klein\n"
-  "#   Date: 07/05/2006\n"
-  "#\n"
-  "DESCRIPTION Sportsim track files (part of zipped .ssz files) \n"
-  "EXTENSION   txt\n"
-  "DATATYPE    TRACK\n"
-
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             SEMICOLON\n"
-  "RECORD_DELIMITER    CRNEWLINE\n"
-  "BADCHARS            TAB\n"
-
-  "#\n"
-  "# FILE HEADER\n"
-  "#\n"
-  "PROLOGUE    ï»¿SportsimVersion:01\n"
-  "PROLOGUE    \\#Sportsim TrackFile\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS:\n"
-  "#\n"
-  "IFIELD      INDEX, \"\", \"%05d\"\n"
-  "IFIELD      CONSTANT, \"0\", \"%s\"\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%f\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%f\"\n"
-  "IFIELD      ALT_FEET, \"\", \"%.f\"\n"
-  "IFIELD      TIMET_TIME, \"\", \"%ld\"\n"
-  "IFIELD      CONSTANT, \";\", \"%s\"\n"
-  ;
-static char tabsep[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: Dumps all fields in a traditional Unix tab separated style\n"
-  "#\n"
-  "# The order of the fields (with the exception of LAT_DIR/LON_DIR) was\n"
-  "# the same as documented in README.style when this format was created.\n"
-  "# LAT_DIR/LON_DIR were undocumented, so I stuck them at the end of the\n"
-  "# other lat/lon fields.\n"
-  "#\n"
-  "# However, please add any new gpsbabel fields to the end (to avoid\n"
-  "# upsetting existing applications) regardless of where they land in\n"
-  "# the README.style documentation.\n"
-  "#\n"
-
-  "DESCRIPTION         All database fields on one tab-separated line\n"
-
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             TAB\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            TAB\n"
-  "FORMAT_TYPE         INTERNAL\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS:\n"
-  "#\n"
-  "IFIELD      INDEX, \"\", \"%d\"\n"
-  "IFIELD      SHORTNAME, \"\", \"%s\"\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"\n"
-  "IFIELD      NOTES, \"\", \"%s\"\n"
-  "IFIELD      URL, \"\", \"%s\"               \n"
-  "IFIELD      URL_LINK_TEXT, \"\", \"%s\"\n"
-  "IFIELD      ICON_DESCR, \"\", \"%s\"\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%f\"\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%f\"\n"
-  "IFIELD      LAT_INT32DEG, \"\", \"%ld\"\n"
-  "IFIELD      LON_INT32DEG, \"\", \"%ld\"\n"
-  "IFIELD      LAT_DECIMALDIR, \"\", \"%f%c\"\n"
-  "IFIELD      LON_DECIMALDIR, \"\", \"%f%c\"\n"
-  "IFIELD      LAT_DIRDECIMAL, \"\", \"%c%f\"\n"
-  "IFIELD      LON_DIRDECIMAL, \"\", \"%c%f\"\n"
-  "IFIELD      LAT_DIR, \"\", \"%c\"\n"
-  "IFIELD      LON_DIR, \"\", \"%c\"\n"
-  "IFIELD      ALT_FEET, \"\", \"%fF\"\n"
-  "IFIELD      ALT_METERS, \"\", \"%fM\"\n"
-  "IFIELD      EXCEL_TIME, \"\", \"%f\"\n"
-  "IFIELD      TIMET_TIME, \"\", \"%ld\"\n"
-  "IFIELD  GEOCACHE_DIFF,\"\",\"%3.1f\"\n"
-  "IFIELD  GEOCACHE_TERR,\"\",\"%3.1f\"\n"
-  "IFIELD  GEOCACHE_CONTAINER,\"\",\"%s\"\n"
-  "IFIELD  GEOCACHE_TYPE,\"\",\"%s\"\n"
-  "IFIELD  PATH_DISTANCE_MILES,\"\",\"%f\"\n"
-  "IFIELD  PATH_DISTANCE_KM, \"\", \"%f\"\n"
-  "IFIELD  GEOCACHE_PLACER,\"\",\"%s\"\n"
-  "IFIELD  YYYYMMDD_TIME,\"\",\"%ld\"\n"
-  "IFIELD      GEOCACHE_HINT, \"\", \"%s\"\n"
-  "IFIELD      GEOCACHE_LAST_FOUND, \"\", \"%d\"\n"
-  ;
-static char tomtom_asc[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: TomTom Navigator Places of Interest\n"
-  "# Author: Olaf Klein\n"
-  "#   Date: 04/17/2007\n"
-  "#\n"
-  "DESCRIPTION         TomTom POI file (.asc)\n"
-  "EXTENSION           asc\n"
-  "DATATYPE            WAYPOINT\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COMMA\n"
-  "RECORD_DELIMITER    CRNEWLINE\n"
-  "BADCHARS            ,\"\n"
-  "ENCODING            MS-ANSI\n"
-  "#\n"
-  "PROLOGUE     TomTom Navigator Places of Interest\n"
-  "PROLOGUE     GPSBabel-__VERSION__ ASCII Export\n"
-  "PROLOGUE      Points\n"
-  "PROLOGUE     Created at: __DATE_AND_TIME__\n"
-  "# #\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      LON_DECIMAL, \"\", \"%.6f\"\n"
-  "IFIELD      LAT_DECIMAL, \"\", \"%.6f\"\n"
-  "IFIELD      SHORTNAME, \"\", \"\"%s\"\"\n"
-  ;
-static char tomtom_itn[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: TomTom Navigator Itineraries (Routes)\n"
-  "# Author: Olaf Klein\n"
-  "#   Date: 04/17/2007\n"
-  "#\n"
-  "DESCRIPTION         TomTom Itineraries (.itn)\n"
-  "EXTENSION           itn\n"
-  "DATATYPE            ROUTE\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             PIPE\n"
-  "RECORD_DELIMITER    CRNEWLINE\n"
-  "BADCHARS            ,|\n"
-  "ENCODING            MS-ANSI\n"
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      LON_10E5, \"\", \"%.f\"\n"
-  "IFIELD      LAT_10E5, \"\", \"%.f\"\n"
-  "IFIELD      SHORTNAME, \"\", \"%s\"\n"
-  "IFIELD      CONSTANT, \"0\", \"%s\"\n"
-  ;
-static char tomtom_itn_places[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: TomTom Navigator Itineraries (Routes)\n"
-  "# Author: Olaf Klein\n"
-  "#   Date: 04/17/2007\n"
-  "#\n"
-  "DESCRIPTION         TomTom Places Itineraries (.itn)\n"
-  "EXTENSION           itn\n"
-  "DATATYPE            ROUTE\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             PIPE\n"
-  "RECORD_DELIMITER    CRNEWLINE\n"
-  "BADCHARS            ,|\n"
-  "ENCODING            MS-ANSI\n"
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      LON_10E5, \"\", \"%.f\"\n"
-  "IFIELD      LAT_10E5, \"\", \"%.f\"\n"
-  "IFIELD      SHORTNAME, \"\", \"%s\"\n"
-  "IFIELD      CONSTANT, \"2\", \"%s\"\n"
-  ;
-static char xmap[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: DeLorme Xmap Conduit\n"
-  "# Author: Alex Mottram\n"
-  "#   Date: 12/09/2002\n"
-  "#\n"
-  "# \n"
-  "# As defined in csv.c/xmap\n"
-  "#\n"
-
-  "DESCRIPTION         DeLorme XMap HH Native .WPT\n"
-  "EXTENSION           wpt\n"
-
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COMMASPACE\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            COMMA\n"
-
-  "PROLOGUE    BEGIN SYMBOL\n"
-  "EPILOGUE    END\n"
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      LAT_HUMAN_READABLE, \"\", \"%08.5f\"\n"
-  "IFIELD      LON_HUMAN_READABLE, \"\", \"%08.5f\"\n"
-  "IFIELD      DESCRIPTION, \"\", \"%s\"\n"
-
-  "OFIELD      LAT_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD      LON_DECIMAL, \"\", \"%08.5f\"\n"
-  "OFIELD      DESCRIPTION, \"\", \"%s\"\n"
-  ;
-static char xmap2006[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: DeLorme Xmap/Street Atlas Handheld 2006 Conduit\n"
-  "# Author: Pasha Phares\n"
-  "#   Date: 5/5/2006\n"
-  "#\n"
-  "# Amazingly, 2006 won't read the \"COMMASPACE\" that we used in \n"
-  "# in Xmap prior to this and versions before 2006 won't read files\n"
-  "# separated by only a comma.\n"
-  "# \n"
-
-  "DESCRIPTION                 DeLorme XMap/SAHH 2006 Native .TXT\n"
-  "EXTENSION                   txt\n"
-
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COMMA\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS                    COMMA\n"
-
-  "PROLOGUE    BEGIN SYMBOL\n"
-  "EPILOGUE    END\n"
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD                              LAT_HUMAN_READABLE, \"\", \"%.12g\"\n"
-  "IFIELD                              LON_HUMAN_READABLE, \"\", \"%.12g\"\n"
-  "IFIELD                              SHORTNAME, \"\", \"%s\"\n"
-
-  "OFIELD                              LAT_DECIMAL, \"\", \"%.12g\"\n"
-  "OFIELD                              LON_DECIMAL, \"\", \"%.12g\"\n"
-  "OFIELD                              SHORTNAME, \"\", \"%s\"\n"
-
-
-
-
-  ;
-static char xmapwpt[] =
-  "# gpsbabel XCSV style file\n"
-  "#\n"
-  "# Format: DeLorme Xmap HH Street Atlas USA .WPT (PocketPC)\n"
-  "# Author: Alex Mottram\n"
-  "#   Date: 12/09/2002\n"
-  "#\n"
-  "# \n"
-  "DESCRIPTION                 DeLorme XMat HH Street Atlas USA .WPT (PPC)\n"
-  "SHORTLEN            32\n"
-  "SHORTWHITE          0\n"
-
-  "#\n"
-  "#\n"
-  "# FILE LAYOUT DEFINITIIONS:\n"
-  "#\n"
-  "FIELD_DELIMITER             COLON\n"
-  "RECORD_DELIMITER    NEWLINE\n"
-  "BADCHARS            COLON\n"
-
-  "#\n"
-  "# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
-  "#\n"
-  "IFIELD      CONSTANT, \"1296126539\", \"%s\"\n"
-  "IFIELD      CONSTANT, \"1481466224\", \"%s\"\n"
-  "IFIELD      LAT_INT32DEG, \"\", \"%d\"\n"
-  "IFIELD      LON_INT32DEG, \"\", \"%d\"\n"
-  "IFIELD      CONSTANT, \"3137157\", \"%s\"\n"
-  "IFIELD      SHORTNAME, \"\", \"%-.31s\"\n"
-  "IFIELD      IGNORE, \"\", \"%-.31s\"\n"
-  "IFIELD      DESCRIPTION, \"\", \"%-.78s\"\n"
-  ;
-style_vecs_t style_list[] = {{ "xmapwpt", xmapwpt } , { "xmap2006", xmap2006 } , { "xmap", xmap } , { "tomtom_itn_places", tomtom_itn_places } , { "tomtom_itn", tomtom_itn } , { "tomtom_asc", tomtom_asc } , { "tabsep", tabsep } , { "sportsim", sportsim } , { "saplus", saplus } , { "s_and_t", s_and_t } , { "ricoh", ricoh } , { "openoffice", openoffice } , { "nima", nima } , { "navigonwpt", navigonwpt } , { "mxf", mxf } , { "mapconverter", mapconverter } , { "land_air_sea", land_air_sea } , { "kwf2", kwf2 } , { "ktf2", ktf2 } , { "kompass_wp", kompass_wp } , { "kompass_tk", kompass_tk } , { "igo2008_poi", igo2008_poi } , { "iblue747", iblue747 } , { "gpsman", gpsman } , { "gpsdrivetrack", gpsdrivetrack } , { "gpsdrive", gpsdrive } , { "geonet", geonet } , { "garmin_poi", garmin_poi } , { "garmin301", garmin301 } , { "fugawi", fugawi } , { "flysight", flysight } , { "dna", dna } , { "custom", custom } , { "cup", cup } , { "csv", csv } , { "cambridge", cambridge } , { "arc", arc } ,  {0,0}};
-size_t nstyles = 37;
+static char arc[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: GPSBabel arc filter format\n"
+"# Author: Ron Parker\n"
+"#   Date: 17 July 2003\n"
+"#\n"
+
+"DESCRIPTION           GPSBabel arc filter file\n"
+"EXTENSION             txt\n"
+
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               TAB\n"
+"RECORD_DELIMITER      NEWLINE\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        LAT_HUMAN_READABLE, \"\", \"%08.5f\"\n"
+"IFIELD        LON_HUMAN_READABLE, \"\", \"%08.5f\"\n"
+
+"OFIELD        LAT_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD        LON_DECIMAL, \"\", \"%08.5f\"\n"
+;
+static char cambridge[] = 
+"DESCRIPTION     Cambridge/Winpilot glider software\n"
+"SHORTLEN        8\n"
+"EXTENSION dat\n"
+"#\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER         COMMA\n"
+"RECORD_DELIMITER        NEWLINE\n"
+"BADCHARS                COMMA\n"
+
+"IFIELD INDEX,\"1\",\"%d\"\n"
+"IFIELD LAT_HUMAN_READABLE,\"\",\"%d:%06.3f%c\"\n"
+"IFIELD LON_HUMAN_READABLE,\"\",\"%03d:%06.3f%c\"\n"
+"IFIELD ALT_METERS,\"\",\"%3.0fM\"\n"
+"IFIELD CONSTANT,\"\",\"T\"\n"
+"IFIELD SHORTNAME,\"\",\"%s\"\n"
+"IFIELD DESCRIPTION,\"\",\"%s\"\n"
+;
+static char csv[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: DeLorme SA 9.0 CSV\n"
+"# Author: Alex Mottram\n"
+"#   Date: 12/09/2002\n"
+"#\n"
+"# \n"
+"DESCRIPTION   Comma separated values\n"
+"SHORTLEN      8\n"
+"#\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COMMASPACE\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              COMMA\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        LAT_HUMAN_READABLE, \"\", \"%08.5f\"\n"
+"IFIELD        LON_HUMAN_READABLE, \"\", \"%08.5f\"\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+
+"OFIELD        LAT_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD        LON_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD        DESCRIPTION, \"\", \"%s\"\n"
+;
+static char cup[] = 
+"#\n"
+"# (c) 2006, Robert Lipe, based on  sample files by Krzysztof Wojtas\n"
+"# Reference info: http://www.seeyou.ws/thankyou.php?fname=cup_format.pdf\n"
+"#\n"
+
+"DESCRIPTION      See You flight analysis data\n"
+"SHORTLEN  8\n"
+"EXTENSION cup\n"
+"#\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER         COMMA\n"
+"RECORD_DELIMITER        NEWLINE\n"
+"BADCHARS                ,\"\n"
+"PROLOGUE name,code,country,lat,lon,elev,style,rwdir,rwlen,freq,desc\n"
+"EPILOGUE -----Related Tasks-----\n"
+
+
+"IFIELD SHORTNAME,\"\", \"\"%s\"\"\n"
+"IFIELD SHORTNAME,\"\", \"%s\"\n"
+"IFIELD CONSTANT,\"\", \"\"\n"
+"IFIELD LAT_DDMMDIR, \"%f\", \"%08.3f\", \"absolute\"\n"
+"IFIELD LON_DDMMDIR, \"%f\", \"%09.3f\", \"absolute\"\n"
+"IFIELD ALT_METERS,\"\", \"%dm\"\n"
+"IFIELD CONSTANT,\"\", \"1\"\n"
+"IFIELD CONSTANT,\"\", \"\"\n"
+"IFIELD CONSTANT,\"\", \"\"\n"
+"IFIELD CONSTANT,\"\", \"\"\n"
+"IFIELD DESCRIPTION,\"\", \"\"%s\"\"\n"
+
+"OFIELD SHORTNAME,\"\", \"\"%s\"\"\n"
+"OFIELD SHORTNAME,\"\", \"%s\"\n"
+"OFIELD CONSTANT,\"\", \"\"\n"
+"OFIELD LAT_DDMMDIR, \"\", \"%08.3f%c\"\n"
+"OFIELD LON_DDMMDIR, \"\", \"%09.3f%c\"\n"
+"OFIELD ALT_METERS,\"\", \"%3.1fm\"\n"
+"OFIELD CONSTANT,\"\", \"1\"\n"
+"OFIELD CONSTANT,\"\", \"\"\n"
+"OFIELD CONSTANT,\"\", \"\"\n"
+"OFIELD CONSTANT,\"\", \"\"\n"
+"OFIELD DESCRIPTION,\"\", \"\"%s\"\"\n"
+
+
+;
+static char custom[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Custom \"Everything\" Style\n"
+"# Author: Alex Mottram\n"
+"#   Date: 11/24/2002\n"
+"#\n"
+"#\n"
+
+"DESCRIPTION           Custom \"Everything\" Style\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COMMA\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              COMMA\n"
+"FORMAT_TYPE           INTERNAL\n"
+
+"#\n"
+"# HEADER STUFF:\n"
+"#\n"
+"PROLOGUE      Prologue Line 1 __FILE__\n"
+"PROLOGUE      Prologue Line 2\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS:\n"
+"#\n"
+"IFIELD        CONSTANT, \"CONSTANT\", \"%s\"\n"
+"IFIELD        INDEX, \"\", \"%d\"\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%f\"\n"
+"IFIELD        LAT_DIR, \"\", \"%c\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%f\"\n"
+"IFIELD        LON_DIR, \"\", \"%c\"\n"
+"IFIELD        ICON_DESCR, \"\", \"%s\"\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+"IFIELD        NOTES, \"\", \"%s\"\n"
+"IFIELD        URL, \"\", \"%s\"               \n"
+"IFIELD        URL_LINK_TEXT, \"\", \"%s\"\n"
+"IFIELD        ALT_METERS, \"\", \"%fM\"\n"
+"IFIELD        ALT_FEET, \"\", \"%fF\"\n"
+"IFIELD        LAT_DECIMALDIR, \"\", \"%f/%c\"\n"
+"IFIELD        LON_DECIMALDIR, \"\", \"%f/%c\"\n"
+"IFIELD        LAT_DIRDECIMAL, \"\", \"%c/%f\"\n"
+"IFIELD        LON_DIRDECIMAL, \"\", \"%c/%f\"\n"
+"IFIELD        LAT_INT32DEG, \"\", \"%ld\"\n"
+"IFIELD        LON_INT32DEG, \"\", \"%ld\"\n"
+"IFIELD        TIMET_TIME, \"\", \"%ld\"\n"
+"IFIELD        EXCEL_TIME, \"\", \"%f\"\n"
+
+"# EPILOGUE: \n"
+"EPILOGUE      Epilogue Line 1\n"
+"EPILOGUE      Epilogue Line 2\n"
+;
+static char dna[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: DNA Marker Format\n"
+"# Author: Alex Mottram\n"
+"#   Date: 12/09/2002\n"
+"#\n"
+"# \n"
+"# As defined in dna.c\n"
+"#\n"
+"#\n"
+
+"DESCRIPTION           Navitrak DNA marker format\n"
+"EXTENSION             dna\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COMMA\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              COMMA\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        INDEX, \"\", \"%d\"\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%08.5f\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%08.5f\"\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+
+;
+static char flysight[] = 
+"# Format:     FlySight\n"
+"# Author:     LukeH\n"
+"# Date:               10/10/10\n"
+
+"DESCRIPTION           FlySight GPS File\n"
+"EXTENSION             csv\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+"FIELD_DELIMITER COMMA\n"
+"RECORD_DELIMITER NEWLINE\n"
+"BADCHARS ,\"\n"
+
+"PROLOGUE time lat lon hMSL velN velE velD hAcc vAcc sAcc gpsFix numSV\n"
+"PROLOGUE\n"
+
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"IFIELD ISO_TIME,      \"\",   \"%s\"  # Date & time\n"
+"IFIELD LAT_DECIMAL,   \"\",   \"%f\"  # Latitude\n"
+"IFIELD LON_DECIMAL,   \"\",   \"%f\"  # Longitude\n"
+"IFIELD ALT_METERS,    \"\",   \"%.0f\"        # Altitude above MSL (m)\n"
+"IFIELD IGNORE,                \"\",   \"%s\"  # Velocity north (m/s)\n"
+"IFIELD IGNORE,                \"\",   \"%s\"  # Velocity east (m/s)\n"
+"IFIELD IGNORE,                \"\",   \"%s\"  # Velocity down (m/s)\n"
+"IFIELD IGNORE,                \"\",   \"%s\"  # Horizontal accuracy (m)\n"
+"IFIELD IGNORE,                \"\",   \"%s\"  # Vertical accuracy (m)\n"
+"IFIELD IGNORE,                \"\",   \"%s\"  # Speed accuracy (m/s)\n"
+"IFIELD GPS_FIX,               \"\",   \"%s\"  # GPS fix type\n"
+"IFIELD GPS_SAT,               \"\",   \"%d\"  # Number of satellites used in fix\n"
+;
+static char fugawi[] = 
+"# fugawi XCSV style file\n"
+"#\n"
+"# Format: Fugawi\n"
+"# Author: Robert Lipe, Patrick Ohly\n"
+"#   Date: 07/24/2005\n"
+"#\n"
+"# \n"
+
+"DESCRIPTION           Fugawi\n"
+"EXTENSION             txt\n"
+"SHORTLEN              10\n"
+
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COMMA\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              COMMA\n"
+
+"PROLOGUE \\# Latitude, Longitude and UTM coordinates are in WGS84 datum\n"
+"PROLOGUE \\#\n"
+"PROLOGUE \\# Every set of data contains the following:\n"
+"PROLOGUE \\#\n"
+"PROLOGUE \\# Waypoint name\n"
+"PROLOGUE \\# Waypoint comment\n"
+"PROLOGUE \\# Waypoint description\n"
+"PROLOGUE \\# Latitude in Degree and decimals (soutern hemisphere has neg. degrees)\n"
+"PROLOGUE \\# Longitude in degree and decimals (neg. numbers: west of Greenwich)\n"
+"PROLOGUE \\# Height in meters [optional when importing, always present when exporting: Date (GMT) as ISO YYYYMMDD, Time of the day relative to the date as HHMMSS\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+"IFIELD        NOTES, \"\", \"%s\"\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%-.7f\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%-.7f\"\n"
+"IFIELD        ALT_METERS, \"\", \"%-7.1f\"\n"
+"IFIELD  GMT_TIME, \"\", \"%Y%m%d\"\n"
+"IFIELD  HMSG_TIME, \"\", \"%02d%02d%02d\"\n"
+;
+static char garmin301[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Garmin 301 Position + Heartrate data\n"
+"# Author: Jeff Kalikstein\n"
+"#   Date: 08/29/2005\n"
+"#\n"
+
+"DESCRIPTION           Garmin 301 Custom position and heartrate\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COMMA\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              COMMA\n"
+"#FORMAT_TYPE          INTERNAL\n"
+
+"#\n"
+"# HEADER STUFF:\n"
+"#\n"
+"PROLOGUE      Garmin 301 data __FILE__ \n"
+"PROLOGUE      Timestamp,Latitude, Longitude, Altitude(ft), heart rate\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS:\n"
+"#\n"
+"IFIELD        TIMET_TIME,\"\",\"%ld\"\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%f\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%f\"\n"
+"IFIELD        ALT_FEET, \"\", \"%fF\"\n"
+"IFIELD  HEART_RATE,\"\",\" %d\"       # beats per minute\n"
+
+
+"# EPILOGUE: \n"
+"#EPILOGUE     Epilogue Line 1\n"
+"#EPILOGUE     Epilogue Line 2\n"
+;
+static char garmin_poi[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Garmin POI\n"
+"# Author: Robert Lipe\n"
+"# Date: 10/07/2005\n"
+"# Reference: http://forums.groundspeak.com/GC/index.php?showtopic=110641&st=0&#entry1752204\n"
+"#\n"
+"DESCRIPTION Garmin POI database\n"
+"#\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER COMMA\n"
+"RECORD_DELIMITER NEWLINE\n"
+"BADCHARS COMMA\n"
+"SHORTLEN 24\n"
+"# PROLOGUE Longitude,Latitude,Name, comment\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD LON_HUMAN_READABLE, \"\", \"%08.5f\"\n"
+"IFIELD LAT_HUMAN_READABLE, \"\", \"%08.5f\"\n"
+"IFIELD SHORTNAME, \"\", \"%s\"\n"
+"IFIELD DESCRIPTION, \"\", \"%s\"\n"
+
+"OFIELD LON_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD LAT_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD SHORTNAME, \"\", \"%-.24s\"\n"
+"OFIELD GEOCACHE_TYPE, \"\", \" %-.4s\", \"no_delim_before,optional\"\n"
+"OFIELD GEOCACHE_CONTAINER, \"\", \"/%-.4s \", \"no_delim_before,optional\"\n"
+"OFIELD GEOCACHE_DIFF, \"\", \"(%3.1f\", \"no_delim_before,optional\"\n"
+"OFIELD GEOCACHE_TERR, \"\", \"/%3.1f)\", \"no_delim_before,optional\"\n"
+"OFIELD DESCRIPTION, \"\", \"%-.50s\"\n"
+;
+static char geonet[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: GEOnet Names Server (GNS) (http://earth-info.nga.mil/gns/html/cntry_files.html)\n"
+"# Author: Olaf Klein\n"
+"#   Date: 08/20/2002\n"
+"#\n"
+
+"DESCRIPTION           GEOnet Names Server (GNS)\n"
+"EXTENSION             txt\n"
+
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+
+"FIELD_DELIMITER               TAB\n"
+"RECORD_DELIMITER      CRNEWLINE\n"
+"BADCHARS              TAB\n"
+"ENCODING              UTF-8\n"
+
+"PROLOGUE              RC      UFI     UNI     LAT     LONG    DMS_LAT DMS_LONG        UTM     JOG     FC      DSG     PC      CC1     ADM1    ADM2    DIM     CC2     NT      LC      SHORT_FORM      GENERIC SORT_NAME       FULL_NAME       FULL_NAME_ND    MODIFY_DATE\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # RC            ( http://earth-info.nga.mil/gns/html/gis_contryfiles.html )\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # UFI\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # UNI\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%03.7f\"   # LAT\n"
+"IFIELD        LON_DECIMAL, \"\", \"%03.7f\"   # LONG\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # DMS_LAT\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # DMS_LONG\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # UTM\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # JOG\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # FC\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # DSG\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # PC\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # CC1\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # ADM1\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # ADM2\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # DIM\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # CC2\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # NT\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # LC\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # SHORT_FORM\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # GENERIC\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"         # SHORT_NAME\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"               # FULL_NAME\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # FULL_NAME_ND\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # MOD_DATE\n"
+;
+static char gpsdrive[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: GPSDrive\n"
+"# Author: Alex Mottram\n"
+"#   Date: 12/11/2002\n"
+"#\n"
+"# \n"
+"#\n"
+
+"DESCRIPTION           GpsDrive Format\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               WHITESPACE\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              ,'\"\n"
+
+"SHORTLEN              20\n"
+"SHORTWHITE              0\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+
+"IFIELD        SHORTNAME, \"\", \"%s\"\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%08.5f\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%08.5f\"\n"
+"IFIELD        ICON_DESCR, \"\", \"%s\"\n"
+
+"OFIELD        ANYNAME, \"\", \"%s\"\n"
+"OFIELD        LAT_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD        LON_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD        ICON_DESCR, \"\", \"%s\"\n"
+;
+static char gpsdrivetrack[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: GPSDriveTrack\n"
+"# Author: Tobias Minich\n"
+"#   Date: 12/07/2005\n"
+"#\n"
+"# \n"
+"#\n"
+
+"DESCRIPTION           GpsDrive Format for Tracks\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               WHITESPACE\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              ,'\"\n"
+
+"SHORTLEN              20\n"
+"SHORTWHITE              0\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+
+"IFIELD        LAT_DECIMAL, \"\", \"%10.6f\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%10.6f\"\n"
+"IFIELD        ALT_METERS, \"\", \"%10.0f\"\n"
+"# Reports are that this format stores in local time, not GMT as \n"
+"# originally thought.\n"
+"# IFIELD      GMT_TIME, \"\", \"%a %b %d %H:%M:%S %Y\"\n"
+"IFIELD        LOCAL_TIME, \"\", \"%a %b %d %H:%M:%S %Y\"\n"
+;
+static char gpsman[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: GPSMAN Format\n"
+"# Author: Alex Mottram\n"
+"#   Date: 12/09/2002\n"
+"#\n"
+"# \n"
+"# As defined in gpsman.c\n"
+"#\n"
+"#\n"
+
+"DESCRIPTION           GPSman\n"
+"SHORTLEN              8\n"
+"SHORTWHITE            0\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               TAB\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              TAB\n"
+
+"PROLOGUE      !Format: DDD 1 WGS 84\n"
+"PROLOGUE      !W:\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        SHORTNAME, \"\", \"%-8.8s\"\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+"IFIELD        LAT_DIRDECIMAL, \"\", \"%c%f\"\n"
+"IFIELD        LON_DIRDECIMAL, \"\", \"%c%f\"\n"
+"IFIELD        IGNORE, \"\", \"%s\"\n"
+
+"# gpsman.c likes mkshort len = 8, whitespace = 0.\n"
+;
+static char iblue747[] = 
+"# GPSBabel XCSV Style File http://www.gpsbabel.org/htmldoc-development/Styles.html\n"
+"# Author: Christian Barmala http://www.barmala.de/\n"
+"# License GNU Public License http://opensource.org/licenses/gpl-license.php\n"
+
+"DESCRIPTION  Data Logger iBlue747 csv\n"
+"EXTENSION csv\n"
+"# full length csv with all options\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+
+"FIELD_DELIMITER COMMA\n"
+"RECORD_DELIMITER NEWLINE\n"
+"# BADCHARS COMMA\n"
+"# SHORTLEN 16\n"
+"# SHORTWHITE 0\n"
+"# ENCODING UTF-8\n"
+"DATATYPE TRACK\n"
+"PROLOGUE INDEX,RCR,DATE,TIME,VALID,LATITUDE,N/S,LONGITUDE,E/W,HEIGHT,SPEED,PDOP,HDOP,VDOP,NSAT,DISTANCE,\n"
+
+
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+
+"IFIELD INDEX,\"1\",\"%d\"            # INDEX\n"
+"IFIELD CONSTANT,\"T\",\"%s\"        # RCR\n"
+"IFIELD GMT_TIME,\"\",\"%Y/%m/%d\"        # DATE\n"
+"IFIELD HMSG_TIME,\"\",\"%02d:%02d:%02d\"    # TIME\n"
+"IFIELD GPS_FIX,\"\",\"%s\"        # VALID #  No fix, SPS, DGPS, PPS\n"
+"IFIELD LAT_DECIMAL,\"\",\"%f\"        # LATITUDE\n"
+"IFIELD LAT_DIR,\"\",\"%c\"            # N/S\n"
+"IFIELD LON_DECIMAL,\"\",\"%f\"        # LONGITUDE\n"
+"IFIELD LON_DIR,\"\",\"%c\"            # E/W\n"
+"IFIELD ALT_METERS,\"\",\"%.0f\"        # HEIGHT\n"
+"IFIELD PATH_SPEED_KPH,\"\",\"%.1f\"        # SPEED\n"
+"IFIELD IGNORE,\"\",\"%f\"        # HEADING\n"
+"IFIELD IGNORE,\"\",\"%d\"        # DSTA\n"
+"IFIELD IGNORE,\"\",\"%f\"        # DAGE\n"
+"IFIELD GPS_PDOP,\"\",\"%f\"            # PDOP\n"
+"IFIELD GPS_HDOP,\"\",\"%f\"            # HDOP\n"
+"IFIELD GPS_VDOP,\"\",\"%f\"            # VDOP\n"
+"IFIELD GPS_SAT,\"\",\"%d(\"            # NSAT USED/VIEW\n"
+"IFIELD IGNORE,\"\",\"%s\"        # SAT INFO\n"
+"IFIELD PATH_DISTANCE_KM,\"\",\"%f\"        # DISTANCE\n"
+;
+static char iblue757[] = 
+"# GPSBabel XCSV Style File http://www.gpsbabel.org/htmldoc-development/Styles.html\n"
+"# Author: iBlue747csv by Christian Barmala http://www.barmala.de/\n"
+"#               edited by Anthony Vella to suit the iBlue757 csv format (date format changed)\n"
+"# License GNU Public License http://opensource.org/licenses/gpl-license.php\n"
+
+"DESCRIPTION  Data Logger iBlue757 csv\n"
+"EXTENSION csv\n"
+"# full length csv with all options\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+
+"FIELD_DELIMITER COMMA\n"
+"RECORD_DELIMITER NEWLINE\n"
+"# BADCHARS COMMA\n"
+"# SHORTLEN 16\n"
+"# SHORTWHITE 0\n"
+"# ENCODING UTF-8\n"
+"DATATYPE TRACK\n"
+"PROLOGUE INDEX,RCR,DATE,TIME,VALID,LATITUDE,N/S,LONGITUDE,E/W,HEIGHT,SPEED,PDOP,HDOP,VDOP,NSAT,DISTANCE,\n"
+
+
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+
+"IFIELD INDEX,\"1\",\"%d\"            # INDEX\n"
+"IFIELD CONSTANT,\"T\",\"%s\"        # RCR\n"
+"IFIELD GMT_TIME,\"\",\"%d/%m/%Y\"        # DATE\n"
+"IFIELD HMSG_TIME,\"\",\"%02d:%02d:%02d\"    # TIME\n"
+"IFIELD GPS_FIX,\"\",\"%s\"        # VALID #  No fix, SPS, DGPS, PPS\n"
+"IFIELD LAT_DECIMAL,\"\",\"%f\"        # LATITUDE\n"
+"IFIELD LAT_DIR,\"\",\"%c\"            # N/S\n"
+"IFIELD LON_DECIMAL,\"\",\"%f\"        # LONGITUDE\n"
+"IFIELD LON_DIR,\"\",\"%c\"            # E/W\n"
+"IFIELD ALT_METERS,\"\",\"%.0f\"        # HEIGHT\n"
+"IFIELD PATH_SPEED_KPH,\"\",\"%.1f\"        # SPEED\n"
+"IFIELD IGNORE,\"\",\"%f\"        # HEADING\n"
+"IFIELD IGNORE,\"\",\"%d\"        # DSTA\n"
+"IFIELD IGNORE,\"\",\"%f\"        # DAGE\n"
+"IFIELD GPS_PDOP,\"\",\"%f\"            # PDOP\n"
+"IFIELD GPS_HDOP,\"\",\"%f\"            # HDOP\n"
+"IFIELD GPS_VDOP,\"\",\"%f\"            # VDOP\n"
+"IFIELD GPS_SAT,\"\",\"%d(\"            # NSAT USED/VIEW\n"
+"IFIELD IGNORE,\"\",\"%s\"        # SAT INFO\n"
+"IFIELD PATH_DISTANCE_KM,\"\",\"%f\"        # DISTANCE\n"
+;
+static char igo2008_poi[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: iGO2008 points of interest\n"
+"# Author: Olaf Klein\n"
+"#   Date: 09/05/2008\n"
+"#\n"
+"DESCRIPTION           iGO2008 points of interest (.upoi)\n"
+"EXTENSION             upoi\n"
+"DATATYPE              WAYPOINT\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               PIPE\n"
+"RECORD_DELIMITER      CRNEWLINE\n"
+"BADCHARS              \"|\n"
+"ENCODING              MS-ANSI\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        INDEX,\"1\",\"%d\"\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # nothing\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%.6f\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%.6f\"\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # Name of map\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # nothing\n"
+"IFIELD        POSTAL_CODE, \"\", \"%s\"\n"
+"IFIELD        CITY, \"\", \"%s\"\n"
+"IFIELD        STREET_ADDR, \"\", \"%s\"               # Street without number\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # Street number\n"
+"IFIELD        NOTES, \"\", \"%s\"\n"
+"IFIELD        PHONE_NR, \"\", \"%s\"\n"
+;
+static char kompass_tk[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Kompass / Deutscher Alpenverein (DAV) Waypoints\n"
+"# Author: Olaf Klein\n"
+"#   Date: 01/10/2007\n"
+"#\n"
+"# \n"
+"DESCRIPTION           Kompass (DAV) Track (.tk)\n"
+"DATATYPE              TRACK\n"
+"EXTENSION             wp\n"
+"FIELD_DELIMITER               COMMA\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              ,\"\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%.7f\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%.7f\"\n"
+;
+static char kompass_wp[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Kompass / Deutscher Alpenverein (DAV) Waypoints\n"
+"# Author: Olaf Klein\n"
+"#   Date: 01/10/2007\n"
+"#\n"
+"# \n"
+"DESCRIPTION           Kompass (DAV) Waypoints (.wp)\n"
+"DATATYPE              WAYPOINT\n"
+"EXTENSION             wp\n"
+"ENCODING              UTF-8\n"
+"FIELD_DELIMITER               SEMICOLON\n"
+"RECORD_DELIMITER      CRNEWLINE\n"
+"BADCHARS              ,\"\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%.7f\"\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%.7f\"\n"
+"IFIELD        ALT_METERS, \"\", \"%.0f\"\n"
+"IFIELD        LOCAL_TIME,\"\",\"%d.%m.%Y %H:%M:%S\"\n"
+"IFIELD        CONSTANT, \"Icons\\Wegpunkt grün.bmp\", \"%s\"\n"
+"IFIELD        IGNORE, \"\", \"%s\"\n"
+"IFIELD  CONSTANT, \"1\", \"%s\"                       # unknown\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+;
+static char ktf2[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Kartex KTF 2.0 Degrees with decimals\n"
+"# Author: Harald Nordius\n"
+"#   Date: 4/13 2006\n"
+"#\n"
+"# \n"
+"DESCRIPTION   Kartex 5 Track File\n"
+"EXTENSION     ktf\n"
+"DATATYPE      TRACK\n"
+"SHORTLEN      10\n"
+"SHORTWHITE    1\n"
+"#\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COMMA\n"
+"RECORD_DELIMITER      CRNEWLINE\n"
+"#\n"
+"#\n"
+"# FILE HEADER\n"
+"#\n"
+"PROLOGUE //Kartex Track File created by GPSBabel\n"
+"PROLOGUE &KTF 2.0,sweref 99 lat long,0\n"
+"#\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        CONSTANT, %, \"%s\"\n"
+"IFIELD        INDEX, \"\", \"%d\"\n"
+"IFIELD        LATLON_HUMAN_READABLE, \"\", \"%c%f°\"\n"
+"IFIELD        ALT_METERS, \"\", \"%.2f\"\n"
+"IFIELD        GMT_TIME, \"\", \"%Y-%m-%d %H:%M:%S\"\n"
+"IFIELD        IGNORE, \"\", \"%s\" #Empty field\n"
+"IFIELD        IGNORE, \"\", \"%s\" #Empty field\n"
+"IFIELD        CONSTANT, \"$\", \"%s\"\n"
+;
+static char kwf2[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Kartex KWF 2.0 Degrees with decimals\n"
+"# Author: Harald Nordius\n"
+"#   Date: 12/08 2004\n"
+"#\n"
+"# \n"
+"DESCRIPTION   Kartex 5 Waypoint File\n"
+"EXTENSION     kwf\n"
+"SHORTLEN      10\n"
+"SHORTWHITE    1\n"
+"#\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COMMA\n"
+"RECORD_DELIMITER      CRNEWLINE\n"
+"ENCODING              CP1252\n"
+"#\n"
+"#\n"
+"# FILE HEADER\n"
+"#\n"
+"PROLOGUE //Kartex Waypoint File created by GPSBabel\n"
+"PROLOGUE &KWF 2.0,sweref 99 lat long,0\n"
+"#\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        CONSTANT, \\#, \"%s\"\n"
+"IFIELD        INDEX,\"\",\"%d\"\n"
+"IFIELD        SHORTNAME,\"\",\"%s\"\n"
+"IFIELD        LATLON_HUMAN_READABLE,\"\",\"%c%f°\"\n"
+"IFIELD        ALT_METERS,\"\",\"%.2f\"\n"
+"IFIELD        IGNORE, \"\",\"%s\" #Empty field\n"
+"IFIELD        IGNORE, \"\",\"%s\" #Empty field\n"
+"IFIELD        CONSTANT, \"0\",\"%s\" #Waypoint symbol code\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+"IFIELD        CONSTANT, \"$\", \"%s\"\n"
+;
+static char land_air_sea[] = 
+"# Format: GPS Tracking Key Pro text file\n"
+"# Author: Tyler Ritchie\n"
+"#   Date: 2011.02.04\n"
+
+"DESCRIPTION GPS Tracking Key Pro text\n"
+"EXTENSION txt\n"
+"ENCODING LATIN1\n"
+
+"DATUM WGS 84\n"
+"DATATYPE TRACK\n"
+"#File layout definitions\n"
+
+"FIELD_DELIMITER COMMA\n"
+"RECORD_DELIMITER NEWLINE\n"
+
+"# Individual data fields in order of appearance\n"
+
+"IFIELD LOCAL_TIME,\"\",\"%m-%d-%Y\"\n"
+"IFIELD HMSG_TIME,\"\",\"%d:%d:%d\"\n"
+"IFIELD LAT_HUMAN_READABLE,\"\",\"%c %d°%d'%f\\\"\"\n"
+"IFIELD LON_HUMAN_READABLE,\"\",\"%c %d°%d'%f\\\"\"\n"
+"IFIELD PATH_SPEED_MPH,\"\",\"%.1fmph\"\n"
+"IFIELD IGNORE,\"\",\"%s\" #This is the bearing data\n"
+"IFIELD ALT_FEET,\"\",\"%dft\"\n"
+;
+static char mapconverter[] = 
+"# Format: Mapopolis.com Mapconverter\n"
+"# Author: Gary Paulson\n"
+"#   Date: 01/13/2003\n"
+"# Requires unsupported mapconverter.exe from mapopolis.com.\n"
+"#\n"
+"# Modifications by Alex Mottram documented 6/30/2003\n"
+"# Change %-40.40s on description output to %-.40s to stop padding.\n"
+"# Add QUOTE as badchars, remove COMMA.\n"
+"# Removed Mapconverter.exe's README information from style file.\n"
+"# Changed OFIELD to IFIELD in case you ever want to read one of these things.\n"
+"#\n"
+"#\n"
+"DESCRIPTION           Mapopolis.com Mapconverter CSV\n"
+"EXTENSION             txt\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+
+"FIELD_DELIMITER   COMMASPACE\n"
+"RECORD_DELIMITER  NEWLINE\n"
+"BADCHARS          \",\n"
+
+"# Map Info Record (header):\n"
+"PROLOGUE M, \"Geocaches\", \"GPSBabel\", Geocaches, __FILE__\n"
+"#\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"# L Records:\n"
+"IFIELD  CONSTANT, \"L\", \"%s\"               # [L]ANDMARK\n"
+"IFIELD  CONSTANT, \"Geocaches\", \"%s\"     # Category for Landmark Searches\n"
+"IFIELD  DESCRIPTION, \"\", \"%-.40s\"       # Name\n"
+"IFIELD  CONSTANT, \"1\", \"%s\"               # View at Zoom Level 1 (1-4)\n"
+"IFIELD  LON_DECIMAL, \"\", \"%08.5f\"       # Longitude\n"
+"IFIELD  LAT_DECIMAL, \"\", \"%08.5f\"       # Latitude\n"
+;
+static char mxf[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Ozi Explorer\n"
+"# Author: Alex Mottram\n"
+"#   Date: 12/09/2002\n"
+"#\n"
+"# \n"
+"# As used in mxf.c\n"
+"#\n"
+"#\n"
+
+"DESCRIPTION           MapTech Exchange Format\n"
+"EXTENSION             mxf\n"
+
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COMMASPACE\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              ,\"\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%08.5f\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%08.5f\"\n"
+"IFIELD        DESCRIPTION, \"\", \"\"%s\"\"\n"
+"IFIELD        SHORTNAME, \"\", \"\"%s\"\"\n"
+"IFIELD        IGNORE, \"\", \"%s\"\n"
+"IFIELD        CONSTANT, \"ff0000\", \"%s\"    # COLOR\n"
+"IFIELD        CONSTANT, \"47\", \"%s\"                # ICON\n"
+
+"OFIELD        LAT_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD        LON_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD        DESCRIPTION, \"\", \"\"%s\"\"\n"
+"OFIELD        SHORTNAME, \"\", \"\"%s\"\"\n"
+"OFIELD        DESCRIPTION, \"\", \"\"%s\"\"\n"
+"OFIELD        CONSTANT, \"ff0000\", \"%s\"    # COLOR\n"
+"OFIELD        CONSTANT, \"47\", \"%s\"                # ICON\n"
+;
+static char navigonwpt[] = 
+"# gpsbabel XCSV style file\n"
+"# Author: Tom Glaab\n"
+"#\n"
+"DESCRIPTION     Navigon Waypoints\n"
+"SHORTLEN        8\n"
+"#\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER         |\n"
+"RECORD_DELIMITER        NEWLINE\n"
+"BADCHARS                |\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+
+"OFIELD  SHORTNAME, \"\",\"[%-.14s \"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"\",\"]\"\n"
+"OFIELD  CONSTANT, \"%s\",\"[0][17]\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  LON_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD  LAT_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"\"\n"
+"OFIELD  CONSTANT, \"%s\",\"49\"\n"
+;
+static char nima[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: NIMA/GNIS Geographic Names File\n"
+"# Author: Alex Mottram\n"
+"#   Date: 11/24/2002\n"
+"#\n"
+
+"DESCRIPTION    NIMA/GNIS Geographic Names File\n"
+
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               TAB\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              TAB\n"
+"PROLOGUE      RC      UFI     UNI     DD_LAT  DD_LONG DMS_LAT DMS_LONG        UTM     JOG     FC      DSG     PC      CC1     ADM1    ADM2    DIM     CC2     NT      LC      SHORT_FORM      GENERIC SORT_NAME       FULL_NAME       FULL_NAME_ND    MODIFY_DATE\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # RC\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # UFI\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # UNI\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%f\"               # DD_LAT\n"
+"IFIELD        LON_DECIMAL, \"\", \"%f\"               # DD_LON\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # DMS_LAT\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # DMS_LON\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # UTM\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # JOG\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # FC\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # DSG\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # PC\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # CC1\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # ADM1\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # ADM2\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # DIM\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # CC2\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # NT\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # LC\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # SHORT_FORM\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # GENERIC\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"         # SORT_NAME \n"
+"IFIELD        IGNORE, \"\", \"%s\"            # FULL_NAME (unicoded!)\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"               # FULL_NAME_ND\n"
+"IFIELD        IGNORE, \"\", \"%s\"            # MODIFY_DATE\n"
+;
+static char openoffice[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Tab delimited useful for OpenOffice, Ploticus etc.\n"
+"# Author: Tobias Minich\n"
+"#   Date: 07/18/2005\n"
+"#\n"
+"#\n"
+
+"DESCRIPTION           Tab delimited fields useful for OpenOffice, Ploticus etc.\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               TAB\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              TAB\n"
+
+"#\n"
+"# HEADER STUFF:\n"
+"#\n"
+"PROLOGUE      Index   Lat                     Lon                     Icon    Name    Description     Notes   URL     Link Text       Altitude (m)    Distance (km)   Speed (m/s)     Course (°)      Time    HDOP    VDOP    PDOP    Satellites      Fix\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS:\n"
+"#\n"
+"IFIELD        INDEX, \"\", \"%d\"\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%f\"\n"
+"IFIELD        LAT_DIR, \"\", \"%c\"\n"
+"IFIELD        LAT_HUMAN_READABLE, \"\", \"%d° %f' %c\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%f\"\n"
+"IFIELD        LON_DIR, \"\", \"%c\"\n"
+"IFIELD        LON_HUMAN_READABLE, \"\", \"%d° %f' %c\"\n"
+"IFIELD        ICON_DESCR, \"\", \"%s\"\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+"IFIELD        NOTES, \"\", \"%s\"\n"
+"IFIELD        URL, \"\", \"%s\"               \n"
+"IFIELD        URL_LINK_TEXT, \"\", \"%s\"\n"
+"IFIELD        ALT_METERS, \"\", \"%f\"\n"
+"IFIELD        PATH_DISTANCE_KM, \"\", \"%f\"\n"
+"IFIELD        PATH_SPEED, \"\", \"%f\"\n"
+"IFIELD        PATH_COURSE, \"\", \"%f\"\n"
+"IFIELD        EXCEL_TIME, \"\", \"%f\"\n"
+"IFIELD        GPS_HDOP, \"\", \"%f\"\n"
+"IFIELD        GPS_VDOP, \"\", \"%f\"\n"
+"IFIELD        GPS_PDOP, \"\", \"%f\"\n"
+"IFIELD        GPS_SAT, \"\", \"%d\"\n"
+"IFIELD        GPS_FIX, \"\", \"%s\"\n"
+;
+static char ricoh[] = 
+"DESCRIPTION Ricoh GPS Log File\n"
+"EXTENSION log\n"
+"DATATYPE TRACK\n"
+
+"FIELD_DELIMITER COMMA\n"
+"RECORD_DELIMITER NEWLINE\n"
+
+"IFIELD LON_DECIMAL,\"\",\"%f\"\n"
+"IFIELD LAT_DECIMAL,\"\",\"%f\"\n"
+"IFIELD ALT_METERS,\"\",\"%f\"\n"
+"IFIELD TRACK_NEW,\"\",\"%d\"\n"
+"IFIELD GMT_TIME,\"\",\"%d-%m-%Y %H:%M:%S\"\n"
+
+;
+static char s_and_t[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: MS S&T 2002/2003\n"
+"# Author: Alex Mottram\n"
+"#   Date: 12/09/2002\n"
+"#\n"
+"# \n"
+"# As requested by Noel Shrum on the gpsbabel-code mailing list.\n"
+"# Name,Latitude,Longitude,Name 2,URL,Type\n"
+"# GCCBF,44.479133,-85.56515,High Rollaway by rjlint,http://www.geocaching.com/seek/cache_details.aspx?ID=3263,Traditional Cache\n"
+"# GC110D,44.6522,-85.492483,Brown Bridge Pond Peek-a-Boo Cache by Big Bird,http://www.geocaching.com/seek/cache_details.aspx?ID=4365,Traditional Cache\n"
+"# GC171C,44.70605,-85.62265,The Michigan Frog by RealDcoy & LRB,http://www.geocaching.com/seek/cache_details.aspx?ID=5916,Traditional Cache\n"
+"#\n"
+
+"DESCRIPTION           Microsoft Streets and Trips 2002-2007\n"
+"EXTENSION               txt\n"
+
+
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               TAB\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              ,\"\n"
+
+"PROLOGUE      Name    Latitude        Longitude       Description     URL     Type    Container       Diff    Terr\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"# NOTE: MS S&T ONLY IMPORTS DATA, IT DOESN'T EXPORT THIS ANYWHERE SO WE CAN\n"
+"#       HAVE OUR WAY WITH THE FORMATTING. \n"
+"#\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"         # Name\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%f\"               # Latitude\n"
+"IFIELD        LON_DECIMAL, \"\", \"%f\"               # Longitude\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"               # Name 2 (Big Description)\n"
+"IFIELD        URL, \"\", \"%s\"                       # URL\n"
+"IFIELD        GEOCACHE_TYPE, \"\", \"%s\"             # Geocache Type\n"
+"IFIELD        GEOCACHE_CONTAINER, \"\", \"%s\"        # Geocache Type\n"
+"IFIELD        GEOCACHE_DIFF, \"\", \"%3.1f\"  # Geocache Type\n"
+"IFIELD        GEOCACHE_TERR, \"\", \"%3.1f\"  # Geocache Type\n"
+;
+static char saplus[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: \n"
+"# Author: Jim Bensman\n"
+"#   Date: 02/22/04\n"
+"#\n"
+
+"DESCRIPTION             DeLorme Street Atlas Plus\n"
+
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER         COMMA\n"
+"RECORD_DELIMITER        NEWLINE\n"
+"BADCHARS                ,\"\n"
+
+"PROLOGUE        Name 2,Name,Latitude,Longitude,URL,Type\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD  DESCRIPTION, \"\", \"%s\"           # Name 2 (Big Description)\n"
+"IFIELD  SHORTNAME, \"\", \"%s\"             # Name\n"
+"IFIELD  LAT_DECIMAL, \"\", \"%f\"           # Latitude\n"
+"IFIELD  LON_DECIMAL, \"\", \"%f\"           # Longitude\n"
+"IFIELD  URL, \"\", \"%s\"                   # URL\n"
+"IFIELD  IGNORE, \"\", \"\"                  # Holder for Geocache Type\n"
+
+;
+static char sportsim[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Sportsim track files\n"
+"# Author: Olaf Klein\n"
+"#   Date: 07/05/2006\n"
+"#\n"
+"DESCRIPTION   Sportsim track files (part of zipped .ssz files) \n"
+"EXTENSION     txt\n"
+"DATATYPE      TRACK\n"
+
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               SEMICOLON\n"
+"RECORD_DELIMITER      CRNEWLINE\n"
+"BADCHARS              TAB\n"
+
+"#\n"
+"# FILE HEADER\n"
+"#\n"
+"PROLOGUE      ï»¿SportsimVersion:01\n"
+"PROLOGUE      \\#Sportsim TrackFile\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS:\n"
+"#\n"
+"IFIELD        INDEX, \"\", \"%05d\"\n"
+"IFIELD        CONSTANT, \"0\", \"%s\"\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%f\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%f\"\n"
+"IFIELD        ALT_FEET, \"\", \"%.f\"\n"
+"IFIELD        TIMET_TIME, \"\", \"%ld\"\n"
+"IFIELD        CONSTANT, \";\", \"%s\"\n"
+;
+static char tabsep[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: Dumps all fields in a traditional Unix tab separated style\n"
+"#\n"
+"# The order of the fields (with the exception of LAT_DIR/LON_DIR) was\n"
+"# the same as documented in README.style when this format was created.\n"
+"# LAT_DIR/LON_DIR were undocumented, so I stuck them at the end of the\n"
+"# other lat/lon fields.\n"
+"#\n"
+"# However, please add any new gpsbabel fields to the end (to avoid\n"
+"# upsetting existing applications) regardless of where they land in\n"
+"# the README.style documentation.\n"
+"#\n"
+
+"DESCRIPTION           All database fields on one tab-separated line\n"
+
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               TAB\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              TAB\n"
+"FORMAT_TYPE           INTERNAL\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS:\n"
+"#\n"
+"IFIELD        INDEX, \"\", \"%d\"\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+"IFIELD        NOTES, \"\", \"%s\"\n"
+"IFIELD        URL, \"\", \"%s\"               \n"
+"IFIELD        URL_LINK_TEXT, \"\", \"%s\"\n"
+"IFIELD        ICON_DESCR, \"\", \"%s\"\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%f\"\n"
+"IFIELD        LON_DECIMAL, \"\", \"%f\"\n"
+"IFIELD        LAT_INT32DEG, \"\", \"%ld\"\n"
+"IFIELD        LON_INT32DEG, \"\", \"%ld\"\n"
+"IFIELD        LAT_DECIMALDIR, \"\", \"%f%c\"\n"
+"IFIELD        LON_DECIMALDIR, \"\", \"%f%c\"\n"
+"IFIELD        LAT_DIRDECIMAL, \"\", \"%c%f\"\n"
+"IFIELD        LON_DIRDECIMAL, \"\", \"%c%f\"\n"
+"IFIELD        LAT_DIR, \"\", \"%c\"\n"
+"IFIELD        LON_DIR, \"\", \"%c\"\n"
+"IFIELD        ALT_FEET, \"\", \"%fF\"\n"
+"IFIELD        ALT_METERS, \"\", \"%fM\"\n"
+"IFIELD        EXCEL_TIME, \"\", \"%f\"\n"
+"IFIELD        TIMET_TIME, \"\", \"%ld\"\n"
+"IFIELD  GEOCACHE_DIFF,\"\",\"%3.1f\"\n"
+"IFIELD  GEOCACHE_TERR,\"\",\"%3.1f\"\n"
+"IFIELD  GEOCACHE_CONTAINER,\"\",\"%s\"\n"
+"IFIELD  GEOCACHE_TYPE,\"\",\"%s\"\n"
+"IFIELD  PATH_DISTANCE_MILES,\"\",\"%f\"\n"
+"IFIELD  PATH_DISTANCE_KM, \"\", \"%f\"\n"
+"IFIELD  GEOCACHE_PLACER,\"\",\"%s\"\n"
+"IFIELD  YYYYMMDD_TIME,\"\",\"%ld\"\n"
+"IFIELD        GEOCACHE_HINT, \"\", \"%s\"\n"
+"IFIELD        GEOCACHE_LAST_FOUND, \"\", \"%d\"\n"
+;
+static char tomtom_asc[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: TomTom Navigator Places of Interest\n"
+"# Author: Olaf Klein\n"
+"#   Date: 04/17/2007\n"
+"#\n"
+"DESCRIPTION           TomTom POI file (.asc)\n"
+"EXTENSION             asc\n"
+"DATATYPE              WAYPOINT\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COMMA\n"
+"RECORD_DELIMITER      CRNEWLINE\n"
+"BADCHARS              ,\"\n"
+"ENCODING              MS-ANSI\n"
+"#\n"
+"PROLOGUE       TomTom Navigator Places of Interest\n"
+"PROLOGUE       GPSBabel-__VERSION__ ASCII Export\n"
+"PROLOGUE        Points\n"
+"PROLOGUE       Created at: __DATE_AND_TIME__\n"
+"# #\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        LON_DECIMAL, \"\", \"%.6f\"\n"
+"IFIELD        LAT_DECIMAL, \"\", \"%.6f\"\n"
+"IFIELD        SHORTNAME, \"\", \"\"%s\"\"\n"
+;
+static char tomtom_itn[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: TomTom Navigator Itineraries (Routes)\n"
+"# Author: Olaf Klein\n"
+"#   Date: 04/17/2007\n"
+"#\n"
+"DESCRIPTION           TomTom Itineraries (.itn)\n"
+"EXTENSION             itn\n"
+"DATATYPE              ROUTE\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               PIPE\n"
+"RECORD_DELIMITER      CRNEWLINE\n"
+"BADCHARS              ,|\n"
+"ENCODING              MS-ANSI\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        LON_10E5, \"\", \"%.f\"\n"
+"IFIELD        LAT_10E5, \"\", \"%.f\"\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"\n"
+"IFIELD        CONSTANT, \"0\", \"%s\"\n"
+;
+static char tomtom_itn_places[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: TomTom Navigator Itineraries (Routes)\n"
+"# Author: Olaf Klein\n"
+"#   Date: 04/17/2007\n"
+"#\n"
+"DESCRIPTION           TomTom Places Itineraries (.itn)\n"
+"EXTENSION             itn\n"
+"DATATYPE              ROUTE\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               PIPE\n"
+"RECORD_DELIMITER      CRNEWLINE\n"
+"BADCHARS              ,|\n"
+"ENCODING              MS-ANSI\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        LON_10E5, \"\", \"%.f\"\n"
+"IFIELD        LAT_10E5, \"\", \"%.f\"\n"
+"IFIELD        SHORTNAME, \"\", \"%s\"\n"
+"IFIELD        CONSTANT, \"2\", \"%s\"\n"
+;
+static char xmap[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: DeLorme Xmap Conduit\n"
+"# Author: Alex Mottram\n"
+"#   Date: 12/09/2002\n"
+"#\n"
+"# \n"
+"# As defined in csv.c/xmap\n"
+"#\n"
+
+"DESCRIPTION           DeLorme XMap HH Native .WPT\n"
+"EXTENSION             wpt\n"
+
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COMMASPACE\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              COMMA\n"
+
+"PROLOGUE      BEGIN SYMBOL\n"
+"EPILOGUE      END\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        LAT_HUMAN_READABLE, \"\", \"%08.5f\"\n"
+"IFIELD        LON_HUMAN_READABLE, \"\", \"%08.5f\"\n"
+"IFIELD        DESCRIPTION, \"\", \"%s\"\n"
+
+"OFIELD        LAT_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD        LON_DECIMAL, \"\", \"%08.5f\"\n"
+"OFIELD        DESCRIPTION, \"\", \"%s\"\n"
+;
+static char xmap2006[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: DeLorme Xmap/Street Atlas Handheld 2006 Conduit\n"
+"# Author: Pasha Phares\n"
+"#   Date: 5/5/2006\n"
+"#\n"
+"# Amazingly, 2006 won't read the \"COMMASPACE\" that we used in \n"
+"# in Xmap prior to this and versions before 2006 won't read files\n"
+"# separated by only a comma.\n"
+"# \n"
+
+"DESCRIPTION                   DeLorme XMap/SAHH 2006 Native .TXT\n"
+"EXTENSION                     txt\n"
+
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COMMA\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS                      COMMA\n"
+
+"PROLOGUE      BEGIN SYMBOL\n"
+"EPILOGUE      END\n"
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD                                LAT_HUMAN_READABLE, \"\", \"%.12g\"\n"
+"IFIELD                                LON_HUMAN_READABLE, \"\", \"%.12g\"\n"
+"IFIELD                                SHORTNAME, \"\", \"%s\"\n"
+
+"OFIELD                                LAT_DECIMAL, \"\", \"%.12g\"\n"
+"OFIELD                                LON_DECIMAL, \"\", \"%.12g\"\n"
+"OFIELD                                SHORTNAME, \"\", \"%s\"\n"
+
+
+
+
+;
+static char xmapwpt[] = 
+"# gpsbabel XCSV style file\n"
+"#\n"
+"# Format: DeLorme Xmap HH Street Atlas USA .WPT (PocketPC)\n"
+"# Author: Alex Mottram\n"
+"#   Date: 12/09/2002\n"
+"#\n"
+"# \n"
+"DESCRIPTION           DeLorme XMat HH Street Atlas USA .WPT (PPC)\n"
+"SHORTLEN              32\n"
+"SHORTWHITE            0\n"
+
+"#\n"
+"#\n"
+"# FILE LAYOUT DEFINITIIONS:\n"
+"#\n"
+"FIELD_DELIMITER               COLON\n"
+"RECORD_DELIMITER      NEWLINE\n"
+"BADCHARS              COLON\n"
+
+"#\n"
+"# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:\n"
+"#\n"
+"IFIELD        CONSTANT, \"1296126539\", \"%s\"\n"
+"IFIELD        CONSTANT, \"1481466224\", \"%s\"\n"
+"IFIELD        LAT_INT32DEG, \"\", \"%d\"\n"
+"IFIELD        LON_INT32DEG, \"\", \"%d\"\n"
+"IFIELD        CONSTANT, \"3137157\", \"%s\"\n"
+"IFIELD        SHORTNAME, \"\", \"%-.31s\"\n"
+"IFIELD        IGNORE, \"\", \"%-.31s\"\n"
+"IFIELD        DESCRIPTION, \"\", \"%-.78s\"\n"
+;
+style_vecs_t style_list[] = {{ "xmapwpt", xmapwpt } , { "xmap2006", xmap2006 } , { "xmap", xmap } , { "tomtom_itn_places", tomtom_itn_places } , { "tomtom_itn", tomtom_itn } , { "tomtom_asc", tomtom_asc } , { "tabsep", tabsep } , { "sportsim", sportsim } , { "saplus", saplus } , { "s_and_t", s_and_t } , { "ricoh", ricoh } , { "openoffice", openoffice } , { "nima", nima } , { "navigonwpt", navigonwpt } , { "mxf", mxf } , { "mapconverter", mapconverter } , { "land_air_sea", land_air_sea } , { "kwf2", kwf2 } , { "ktf2", ktf2 } , { "kompass_wp", kompass_wp } , { "kompass_tk", kompass_tk } , { "igo2008_poi", igo2008_poi } , { "iblue757", iblue757 } , { "iblue747", iblue747 } , { "gpsman", gpsman } , { "gpsdrivetrack", gpsdrivetrack } , { "gpsdrive", gpsdrive } , { "geonet", geonet } , { "garmin_poi", garmin_poi } , { "garmin301", garmin301 } , { "fugawi", fugawi } , { "flysight", flysight } , { "dna", dna } , { "custom", custom } , { "cup", cup } , { "csv", csv } , { "cambridge", cambridge } , { "arc", arc } ,  {0,0}};
+size_t nstyles = 38;
 #else /* CSVFMTS_ENABLED */
 style_vecs_t style_list[] = {{0,0}};
 size_t nstyles = 0;
diff --git a/gpsbabel/reference/arc-project.gpx b/gpsbabel/reference/arc-project.gpx
new file mode 100644 (file)
index 0000000..b3061f3
--- /dev/null
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx
+  version="1.0"
+  creator="GPSBabel - http://www.gpsbabel.org"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns="http://www.topografix.com/GPX/1/0"
+  xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
+<time>1970-01-01T00:00:00Z</time>
+<bounds minlat="28.353803737" minlon="-16.502955209" maxlat="28.359546000" maxlon="-16.494318496"/>
+<wpt lat="28.357846000" lon="-16.499208000">
+  <name>Derecha</name>
+  <cmt>Derecha</cmt>
+  <desc>Derecha</desc>
+  <sym>right</sym>
+</wpt>
+<wpt lat="28.359546000" lon="-16.502867000">
+  <name>LAP001</name>
+  <cmt>LAP001</cmt>
+  <desc>LAP001</desc>
+</wpt>
+<wpt lat="28.355463000" lon="-16.500421000">
+  <name>Valle</name>
+  <cmt>Valle</cmt>
+  <desc>Valle</desc>
+  <sym>valley</sym>
+</wpt>
+<wpt lat="28.359371000" lon="-16.501775000">
+  <name>wpt1</name>
+  <cmt>wpt1</cmt>
+  <desc>wpt1</desc>
+  <sym>flag, green</sym>
+</wpt>
+<wpt lat="28.356662000" lon="-16.497183000">
+  <name>wpt2</name>
+  <cmt>wpt2</cmt>
+  <desc>wpt2</desc>
+  <sym>flag, red</sym>
+</wpt>
+<wpt lat="28.357407000" lon="-16.501378000">
+  <name>wpt3</name>
+  <cmt>wpt3</cmt>
+  <desc>wpt3</desc>
+  <sym>flag, green</sym>
+</wpt>
+<wpt lat="28.354200000" lon="-16.495939000">
+  <name>wpt4</name>
+  <cmt>wpt4</cmt>
+  <desc>wpt4</desc>
+  <sym>flag, green</sym>
+</wpt>
+<wpt lat="28.353908000" lon="-16.496443000">
+  <name>wpt5</name>
+  <cmt>wpt5</cmt>
+  <desc>wpt5</desc>
+  <sym>flag, green</sym>
+</wpt>
+<wpt lat="28.359015000" lon="-16.500466000">
+  <name>wpt6</name>
+  <cmt>wpt6</cmt>
+  <desc>wpt6</desc>
+  <sym>flag, green</sym>
+</wpt>
+<rte>
+  <name>Route1</name>
+  <rtept lat="28.354379680" lon="-16.495831262">
+    <name>RPT001</name>
+  </rtept>
+  <rtept lat="28.354813996" lon="-16.495434295">
+    <name>RPT002</name>
+  </rtept>
+  <rtept lat="28.355380492" lon="-16.494962226">
+    <name>RPT003</name>
+  </rtept>
+  <rtept lat="28.355946985" lon="-16.494726192">
+    <name>RPT004</name>
+  </rtept>
+  <rtept lat="28.356522916" lon="-16.494490157">
+    <name>RPT005</name>
+  </rtept>
+  <rtept lat="28.356994989" lon="-16.494393598">
+    <name>RPT006</name>
+  </rtept>
+  <rtept lat="28.357646446" lon="-16.494318496">
+    <name>RPT007</name>
+  </rtept>
+  <rtept lat="28.358165720" lon="-16.494415056">
+    <name>RPT008</name>
+  </rtept>
+  <rtept lat="28.358609462" lon="-16.494683276">
+    <name>RPT009</name>
+  </rtept>
+  <rtept lat="28.359147614" lon="-16.495327007">
+    <name>RPT010</name>
+  </rtept>
+  <rtept lat="28.359374203" lon="-16.496067296">
+    <name>RPT011</name>
+  </rtept>
+  <rtept lat="28.359411968" lon="-16.496818315">
+    <name>RPT012</name>
+  </rtept>
+  <rtept lat="28.359355321" lon="-16.497612249">
+    <name>RPT013</name>
+  </rtept>
+  <rtept lat="28.359100408" lon="-16.498416911">
+    <name>RPT014</name>
+  </rtept>
+  <rtept lat="28.359005995" lon="-16.498888980">
+    <name>RPT015</name>
+  </rtept>
+  <rtept lat="28.358987113" lon="-16.499790202">
+    <name>RPT016</name>
+  </rtept>
+  <rtept lat="28.358826611" lon="-16.501227866">
+    <name>RPT017</name>
+  </rtept>
+  <rtept lat="28.358656668" lon="-16.502161275">
+    <name>RPT018</name>
+  </rtept>
+  <rtept lat="28.358052424" lon="-16.502794276">
+    <name>RPT019</name>
+  </rtept>
+  <rtept lat="28.357419853" lon="-16.502944480">
+    <name>RPT020</name>
+  </rtept>
+  <rtept lat="28.356683421" lon="-16.502955209">
+    <name>RPT021</name>
+  </rtept>
+  <rtept lat="28.356135815" lon="-16.502697717">
+    <name>RPT022</name>
+  </rtept>
+  <rtept lat="28.355389933" lon="-16.502150546">
+    <name>RPT023</name>
+  </rtept>
+  <rtept lat="28.355002828" lon="-16.501710664">
+    <name>RPT024</name>
+  </rtept>
+  <rtept lat="28.354521305" lon="-16.500734340">
+    <name>RPT025</name>
+  </rtept>
+  <rtept lat="28.354228613" lon="-16.499983321">
+    <name>RPT026</name>
+  </rtept>
+  <rtept lat="28.353935921" lon="-16.498942624">
+    <name>RPT027</name>
+  </rtept>
+  <rtept lat="28.353803737" lon="-16.497987758">
+    <name>RPT028</name>
+  </rtept>
+  <rtept lat="28.353926479" lon="-16.496775399">
+    <name>RPT029</name>
+  </rtept>
+  <rtept lat="28.353926479" lon="-16.496775399">
+    <name>RPT030</name>
+  </rtept>
+</rte>
+<trk>
+  <name>Track1</name>
+<trkseg>
+<trkpt lat="28.359546000" lon="-16.502867000">
+  <time>2011-09-26T00:00:00Z</time>
+</trkpt>
+<trkpt lat="28.359338000" lon="-16.502598000">
+  <time>2011-09-26T00:00:04Z</time>
+</trkpt>
+<trkpt lat="28.359270000" lon="-16.502511000">
+  <time>2011-09-26T00:00:05Z</time>
+</trkpt>
+<trkpt lat="28.359204000" lon="-16.502291000">
+  <time>2011-09-26T00:00:08Z</time>
+</trkpt>
+<trkpt lat="28.359192000" lon="-16.501396000">
+  <time>2011-09-26T00:00:18Z</time>
+</trkpt>
+<trkpt lat="28.359106000" lon="-16.501013000">
+  <time>2011-09-26T00:00:23Z</time>
+</trkpt>
+<trkpt lat="28.358917000" lon="-16.500654000">
+  <time>2011-09-26T00:00:28Z</time>
+</trkpt>
+<trkpt lat="28.358626000" lon="-16.500342000">
+  <time>2011-09-26T00:00:33Z</time>
+</trkpt>
+<trkpt lat="28.358246000" lon="-16.500081000">
+  <time>2011-09-26T00:00:39Z</time>
+</trkpt>
+<trkpt lat="28.357937000" lon="-16.499408000">
+  <time>2011-09-26T00:00:48Z</time>
+</trkpt>
+<trkpt lat="28.357846000" lon="-16.499208000">
+  <time>2011-09-26T00:00:51Z</time>
+</trkpt>
+<trkpt lat="28.357735000" lon="-16.499147000">
+  <time>2011-09-26T00:00:52Z</time>
+</trkpt>
+<trkpt lat="28.357665000" lon="-16.499194000">
+  <time>2011-09-26T00:00:54Z</time>
+</trkpt>
+<trkpt lat="28.357640000" lon="-16.499329000">
+  <time>2011-09-26T00:00:55Z</time>
+</trkpt>
+<trkpt lat="28.357788000" lon="-16.499707000">
+  <time>2011-09-26T00:01:00Z</time>
+</trkpt>
+<trkpt lat="28.357825000" lon="-16.500150000">
+  <time>2011-09-26T00:01:05Z</time>
+</trkpt>
+<trkpt lat="28.357952000" lon="-16.500374000">
+  <time>2011-09-26T00:01:08Z</time>
+</trkpt>
+<trkpt lat="28.358219000" lon="-16.500677000">
+  <time>2011-09-26T00:01:13Z</time>
+</trkpt>
+<trkpt lat="28.358334000" lon="-16.500943000">
+  <time>2011-09-26T00:01:17Z</time>
+</trkpt>
+<trkpt lat="28.358359000" lon="-16.501330000">
+  <time>2011-09-26T00:01:21Z</time>
+</trkpt>
+<trkpt lat="28.358330000" lon="-16.501666000">
+  <time>2011-09-26T00:01:25Z</time>
+</trkpt>
+<trkpt lat="28.358231000" lon="-16.501900000">
+  <time>2011-09-26T00:01:28Z</time>
+</trkpt>
+<trkpt lat="28.357924000" lon="-16.502231000">
+  <time>2011-09-26T00:01:34Z</time>
+</trkpt>
+<trkpt lat="28.357698000" lon="-16.502363000">
+  <time>2011-09-26T00:01:37Z</time>
+</trkpt>
+<trkpt lat="28.357644000" lon="-16.502394000">
+  <time>2011-09-26T00:01:38Z</time>
+</trkpt>
+<trkpt lat="28.357576000" lon="-16.502446000">
+  <time>2011-09-26T00:01:39Z</time>
+</trkpt>
+<trkpt lat="28.357330000" lon="-16.502535000">
+  <time>2011-09-26T00:01:43Z</time>
+</trkpt>
+<trkpt lat="28.356993000" lon="-16.502545000">
+  <time>2011-09-26T00:01:47Z</time>
+</trkpt>
+<trkpt lat="28.356918000" lon="-16.502569000">
+  <time>2011-09-26T00:01:48Z</time>
+</trkpt>
+<trkpt lat="28.356687000" lon="-16.502552000">
+  <time>2011-09-26T00:01:51Z</time>
+</trkpt>
+<trkpt lat="28.356734000" lon="-16.502402000">
+  <time>2011-09-26T00:01:53Z</time>
+</trkpt>
+<trkpt lat="28.356577000" lon="-16.502170000">
+  <time>2011-09-26T00:01:57Z</time>
+</trkpt>
+<trkpt lat="28.356407000" lon="-16.501902000">
+  <time>2011-09-26T00:02:01Z</time>
+</trkpt>
+<trkpt lat="28.356256000" lon="-16.501634000">
+  <time>2011-09-26T00:02:04Z</time>
+</trkpt>
+<trkpt lat="28.355854000" lon="-16.501039000">
+  <time>2011-09-26T00:02:13Z</time>
+</trkpt>
+<trkpt lat="28.355698000" lon="-16.500794000">
+  <time>2011-09-26T00:02:17Z</time>
+</trkpt>
+<trkpt lat="28.355463000" lon="-16.500421000">
+  <time>2011-09-26T00:02:22Z</time>
+</trkpt>
+<trkpt lat="28.355083000" lon="-16.500100000">
+  <time>2011-09-26T00:02:28Z</time>
+</trkpt>
+<trkpt lat="28.354960000" lon="-16.499323000">
+  <time>2011-09-26T00:02:38Z</time>
+</trkpt>
+<trkpt lat="28.354927000" lon="-16.499073000">
+  <time>2011-09-26T00:02:41Z</time>
+</trkpt>
+<trkpt lat="28.354983000" lon="-16.498794000">
+  <time>2011-09-26T00:02:44Z</time>
+</trkpt>
+<trkpt lat="28.354923000" lon="-16.498684000">
+  <time>2011-09-26T00:02:46Z</time>
+</trkpt>
+<trkpt lat="28.354913000" lon="-16.498582000">
+  <time>2011-09-26T00:02:47Z</time>
+</trkpt>
+<trkpt lat="28.354651000" lon="-16.498306000">
+  <time>2011-09-26T00:02:52Z</time>
+</trkpt>
+<trkpt lat="28.354870000" lon="-16.497995000">
+  <time>2011-09-26T00:02:56Z</time>
+</trkpt>
+<trkpt lat="28.354776000" lon="-16.497697000">
+  <time>2011-09-26T00:03:00Z</time>
+</trkpt>
+<trkpt lat="28.354747000" lon="-16.497604000">
+  <time>2011-09-26T00:03:01Z</time>
+</trkpt>
+<trkpt lat="28.354516000" lon="-16.497422000">
+  <time>2011-09-26T00:03:05Z</time>
+</trkpt>
+<trkpt lat="28.354305000" lon="-16.497400000">
+  <time>2011-09-26T00:03:08Z</time>
+</trkpt>
+<trkpt lat="28.354172000" lon="-16.497408000">
+  <time>2011-09-26T00:03:09Z</time>
+</trkpt>
+</trkseg>
+</trk>
+</gpx>
diff --git a/gpsbabel/reference/arc-project1.gpx b/gpsbabel/reference/arc-project1.gpx
new file mode 100644 (file)
index 0000000..b45f7b1
--- /dev/null
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx
+  version="1.0"
+  creator="GPSBabel - http://www.gpsbabel.org"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns="http://www.topografix.com/GPX/1/0"
+  xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
+<time>1970-01-01T00:00:00Z</time>
+<bounds minlat="28.353803737" minlon="-16.502955209" maxlat="28.359546000" maxlon="-16.494318496"/>
+<wpt lat="28.356662000" lon="-16.497183000">
+  <name>wpt2</name>
+  <cmt>wpt2</cmt>
+  <desc>wpt2</desc>
+  <sym>flag, red</sym>
+</wpt>
+<wpt lat="28.357407000" lon="-16.501378000">
+  <name>wpt3</name>
+  <cmt>wpt3</cmt>
+  <desc>wpt3</desc>
+  <sym>flag, green</sym>
+</wpt>
+<rte>
+  <name>Route1</name>
+  <rtept lat="28.354379680" lon="-16.495831262">
+    <name>RPT001</name>
+  </rtept>
+  <rtept lat="28.354813996" lon="-16.495434295">
+    <name>RPT002</name>
+  </rtept>
+  <rtept lat="28.355380492" lon="-16.494962226">
+    <name>RPT003</name>
+  </rtept>
+  <rtept lat="28.355946985" lon="-16.494726192">
+    <name>RPT004</name>
+  </rtept>
+  <rtept lat="28.356522916" lon="-16.494490157">
+    <name>RPT005</name>
+  </rtept>
+  <rtept lat="28.356994989" lon="-16.494393598">
+    <name>RPT006</name>
+  </rtept>
+  <rtept lat="28.357646446" lon="-16.494318496">
+    <name>RPT007</name>
+  </rtept>
+  <rtept lat="28.358165720" lon="-16.494415056">
+    <name>RPT008</name>
+  </rtept>
+  <rtept lat="28.358609462" lon="-16.494683276">
+    <name>RPT009</name>
+  </rtept>
+  <rtept lat="28.359147614" lon="-16.495327007">
+    <name>RPT010</name>
+  </rtept>
+  <rtept lat="28.359374203" lon="-16.496067296">
+    <name>RPT011</name>
+  </rtept>
+  <rtept lat="28.359411968" lon="-16.496818315">
+    <name>RPT012</name>
+  </rtept>
+  <rtept lat="28.359355321" lon="-16.497612249">
+    <name>RPT013</name>
+  </rtept>
+  <rtept lat="28.359100408" lon="-16.498416911">
+    <name>RPT014</name>
+  </rtept>
+  <rtept lat="28.359005995" lon="-16.498888980">
+    <name>RPT015</name>
+  </rtept>
+  <rtept lat="28.358987113" lon="-16.499790202">
+    <name>RPT016</name>
+  </rtept>
+  <rtept lat="28.358826611" lon="-16.501227866">
+    <name>RPT017</name>
+  </rtept>
+  <rtept lat="28.358656668" lon="-16.502161275">
+    <name>RPT018</name>
+  </rtept>
+  <rtept lat="28.358052424" lon="-16.502794276">
+    <name>RPT019</name>
+  </rtept>
+  <rtept lat="28.357419853" lon="-16.502944480">
+    <name>RPT020</name>
+  </rtept>
+  <rtept lat="28.356683421" lon="-16.502955209">
+    <name>RPT021</name>
+  </rtept>
+  <rtept lat="28.356135815" lon="-16.502697717">
+    <name>RPT022</name>
+  </rtept>
+  <rtept lat="28.355389933" lon="-16.502150546">
+    <name>RPT023</name>
+  </rtept>
+  <rtept lat="28.355002828" lon="-16.501710664">
+    <name>RPT024</name>
+  </rtept>
+  <rtept lat="28.354521305" lon="-16.500734340">
+    <name>RPT025</name>
+  </rtept>
+  <rtept lat="28.354228613" lon="-16.499983321">
+    <name>RPT026</name>
+  </rtept>
+  <rtept lat="28.353935921" lon="-16.498942624">
+    <name>RPT027</name>
+  </rtept>
+  <rtept lat="28.353803737" lon="-16.497987758">
+    <name>RPT028</name>
+  </rtept>
+  <rtept lat="28.353926479" lon="-16.496775399">
+    <name>RPT029</name>
+  </rtept>
+  <rtept lat="28.353926479" lon="-16.496775399">
+    <name>RPT030</name>
+  </rtept>
+</rte>
+<trk>
+  <name>Track1</name>
+<trkseg>
+<trkpt lat="28.359546000" lon="-16.502867000">
+  <time>2011-09-26T00:00:00Z</time>
+</trkpt>
+<trkpt lat="28.359338000" lon="-16.502598000">
+  <time>2011-09-26T00:00:04Z</time>
+</trkpt>
+<trkpt lat="28.359270000" lon="-16.502511000">
+  <time>2011-09-26T00:00:05Z</time>
+</trkpt>
+<trkpt lat="28.359204000" lon="-16.502291000">
+  <time>2011-09-26T00:00:08Z</time>
+</trkpt>
+<trkpt lat="28.359192000" lon="-16.501396000">
+  <time>2011-09-26T00:00:18Z</time>
+</trkpt>
+<trkpt lat="28.359106000" lon="-16.501013000">
+  <time>2011-09-26T00:00:23Z</time>
+</trkpt>
+<trkpt lat="28.358917000" lon="-16.500654000">
+  <time>2011-09-26T00:00:28Z</time>
+</trkpt>
+<trkpt lat="28.358626000" lon="-16.500342000">
+  <time>2011-09-26T00:00:33Z</time>
+</trkpt>
+<trkpt lat="28.358246000" lon="-16.500081000">
+  <time>2011-09-26T00:00:39Z</time>
+</trkpt>
+<trkpt lat="28.357937000" lon="-16.499408000">
+  <time>2011-09-26T00:00:48Z</time>
+</trkpt>
+<trkpt lat="28.357846000" lon="-16.499208000">
+  <time>2011-09-26T00:00:51Z</time>
+</trkpt>
+<trkpt lat="28.357735000" lon="-16.499147000">
+  <time>2011-09-26T00:00:52Z</time>
+</trkpt>
+<trkpt lat="28.357665000" lon="-16.499194000">
+  <time>2011-09-26T00:00:54Z</time>
+</trkpt>
+<trkpt lat="28.357640000" lon="-16.499329000">
+  <time>2011-09-26T00:00:55Z</time>
+</trkpt>
+<trkpt lat="28.357788000" lon="-16.499707000">
+  <time>2011-09-26T00:01:00Z</time>
+</trkpt>
+<trkpt lat="28.357825000" lon="-16.500150000">
+  <time>2011-09-26T00:01:05Z</time>
+</trkpt>
+<trkpt lat="28.357952000" lon="-16.500374000">
+  <time>2011-09-26T00:01:08Z</time>
+</trkpt>
+<trkpt lat="28.358219000" lon="-16.500677000">
+  <time>2011-09-26T00:01:13Z</time>
+</trkpt>
+<trkpt lat="28.358334000" lon="-16.500943000">
+  <time>2011-09-26T00:01:17Z</time>
+</trkpt>
+<trkpt lat="28.358359000" lon="-16.501330000">
+  <time>2011-09-26T00:01:21Z</time>
+</trkpt>
+<trkpt lat="28.358330000" lon="-16.501666000">
+  <time>2011-09-26T00:01:25Z</time>
+</trkpt>
+<trkpt lat="28.358231000" lon="-16.501900000">
+  <time>2011-09-26T00:01:28Z</time>
+</trkpt>
+<trkpt lat="28.357924000" lon="-16.502231000">
+  <time>2011-09-26T00:01:34Z</time>
+</trkpt>
+<trkpt lat="28.357698000" lon="-16.502363000">
+  <time>2011-09-26T00:01:37Z</time>
+</trkpt>
+<trkpt lat="28.357644000" lon="-16.502394000">
+  <time>2011-09-26T00:01:38Z</time>
+</trkpt>
+<trkpt lat="28.357576000" lon="-16.502446000">
+  <time>2011-09-26T00:01:39Z</time>
+</trkpt>
+<trkpt lat="28.357330000" lon="-16.502535000">
+  <time>2011-09-26T00:01:43Z</time>
+</trkpt>
+<trkpt lat="28.356993000" lon="-16.502545000">
+  <time>2011-09-26T00:01:47Z</time>
+</trkpt>
+<trkpt lat="28.356918000" lon="-16.502569000">
+  <time>2011-09-26T00:01:48Z</time>
+</trkpt>
+<trkpt lat="28.356687000" lon="-16.502552000">
+  <time>2011-09-26T00:01:51Z</time>
+</trkpt>
+<trkpt lat="28.356734000" lon="-16.502402000">
+  <time>2011-09-26T00:01:53Z</time>
+</trkpt>
+<trkpt lat="28.356577000" lon="-16.502170000">
+  <time>2011-09-26T00:01:57Z</time>
+</trkpt>
+<trkpt lat="28.356407000" lon="-16.501902000">
+  <time>2011-09-26T00:02:01Z</time>
+</trkpt>
+<trkpt lat="28.356256000" lon="-16.501634000">
+  <time>2011-09-26T00:02:04Z</time>
+</trkpt>
+<trkpt lat="28.355854000" lon="-16.501039000">
+  <time>2011-09-26T00:02:13Z</time>
+</trkpt>
+<trkpt lat="28.355698000" lon="-16.500794000">
+  <time>2011-09-26T00:02:17Z</time>
+</trkpt>
+<trkpt lat="28.355463000" lon="-16.500421000">
+  <time>2011-09-26T00:02:22Z</time>
+</trkpt>
+<trkpt lat="28.355083000" lon="-16.500100000">
+  <time>2011-09-26T00:02:28Z</time>
+</trkpt>
+<trkpt lat="28.354960000" lon="-16.499323000">
+  <time>2011-09-26T00:02:38Z</time>
+</trkpt>
+<trkpt lat="28.354927000" lon="-16.499073000">
+  <time>2011-09-26T00:02:41Z</time>
+</trkpt>
+<trkpt lat="28.354983000" lon="-16.498794000">
+  <time>2011-09-26T00:02:44Z</time>
+</trkpt>
+<trkpt lat="28.354923000" lon="-16.498684000">
+  <time>2011-09-26T00:02:46Z</time>
+</trkpt>
+<trkpt lat="28.354913000" lon="-16.498582000">
+  <time>2011-09-26T00:02:47Z</time>
+</trkpt>
+<trkpt lat="28.354651000" lon="-16.498306000">
+  <time>2011-09-26T00:02:52Z</time>
+</trkpt>
+<trkpt lat="28.354870000" lon="-16.497995000">
+  <time>2011-09-26T00:02:56Z</time>
+</trkpt>
+<trkpt lat="28.354776000" lon="-16.497697000">
+  <time>2011-09-26T00:03:00Z</time>
+</trkpt>
+<trkpt lat="28.354747000" lon="-16.497604000">
+  <time>2011-09-26T00:03:01Z</time>
+</trkpt>
+<trkpt lat="28.354516000" lon="-16.497422000">
+  <time>2011-09-26T00:03:05Z</time>
+</trkpt>
+<trkpt lat="28.354305000" lon="-16.497400000">
+  <time>2011-09-26T00:03:08Z</time>
+</trkpt>
+<trkpt lat="28.354172000" lon="-16.497408000">
+  <time>2011-09-26T00:03:09Z</time>
+</trkpt>
+</trkseg>
+</trk>
+</gpx>
diff --git a/gpsbabel/reference/arc-project2.gpx b/gpsbabel/reference/arc-project2.gpx
new file mode 100644 (file)
index 0000000..fedf583
--- /dev/null
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx
+  version="1.0"
+  creator="GPSBabel - http://www.gpsbabel.org"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns="http://www.topografix.com/GPX/1/0"
+  xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
+<time>1970-01-01T00:00:00Z</time>
+<bounds minlat="28.353803737" minlon="-16.502955209" maxlat="28.359546000" maxlon="-16.494318496"/>
+<wpt lat="28.358826611" lon="-16.501227866">
+  <name>wpt1</name>
+  <cmt>wpt1</cmt>
+  <desc>wpt1</desc>
+  <sym>flag, green</sym>
+</wpt>
+<wpt lat="28.354379680" lon="-16.495831262">
+  <name>wpt4</name>
+  <cmt>wpt4</cmt>
+  <desc>wpt4</desc>
+  <sym>flag, green</sym>
+</wpt>
+<wpt lat="28.353926479" lon="-16.496775399">
+  <name>wpt5</name>
+  <cmt>wpt5</cmt>
+  <desc>wpt5</desc>
+  <sym>flag, green</sym>
+</wpt>
+<wpt lat="28.358987113" lon="-16.499790202">
+  <name>wpt6</name>
+  <cmt>wpt6</cmt>
+  <desc>wpt6</desc>
+  <sym>flag, green</sym>
+</wpt>
+<rte>
+  <name>Route1</name>
+  <rtept lat="28.354379680" lon="-16.495831262">
+    <name>RPT001</name>
+  </rtept>
+  <rtept lat="28.354813996" lon="-16.495434295">
+    <name>RPT002</name>
+  </rtept>
+  <rtept lat="28.355380492" lon="-16.494962226">
+    <name>RPT003</name>
+  </rtept>
+  <rtept lat="28.355946985" lon="-16.494726192">
+    <name>RPT004</name>
+  </rtept>
+  <rtept lat="28.356522916" lon="-16.494490157">
+    <name>RPT005</name>
+  </rtept>
+  <rtept lat="28.356994989" lon="-16.494393598">
+    <name>RPT006</name>
+  </rtept>
+  <rtept lat="28.357646446" lon="-16.494318496">
+    <name>RPT007</name>
+  </rtept>
+  <rtept lat="28.358165720" lon="-16.494415056">
+    <name>RPT008</name>
+  </rtept>
+  <rtept lat="28.358609462" lon="-16.494683276">
+    <name>RPT009</name>
+  </rtept>
+  <rtept lat="28.359147614" lon="-16.495327007">
+    <name>RPT010</name>
+  </rtept>
+  <rtept lat="28.359374203" lon="-16.496067296">
+    <name>RPT011</name>
+  </rtept>
+  <rtept lat="28.359411968" lon="-16.496818315">
+    <name>RPT012</name>
+  </rtept>
+  <rtept lat="28.359355321" lon="-16.497612249">
+    <name>RPT013</name>
+  </rtept>
+  <rtept lat="28.359100408" lon="-16.498416911">
+    <name>RPT014</name>
+  </rtept>
+  <rtept lat="28.359005995" lon="-16.498888980">
+    <name>RPT015</name>
+  </rtept>
+  <rtept lat="28.358987113" lon="-16.499790202">
+    <name>RPT016</name>
+  </rtept>
+  <rtept lat="28.358826611" lon="-16.501227866">
+    <name>RPT017</name>
+  </rtept>
+  <rtept lat="28.358656668" lon="-16.502161275">
+    <name>RPT018</name>
+  </rtept>
+  <rtept lat="28.358052424" lon="-16.502794276">
+    <name>RPT019</name>
+  </rtept>
+  <rtept lat="28.357419853" lon="-16.502944480">
+    <name>RPT020</name>
+  </rtept>
+  <rtept lat="28.356683421" lon="-16.502955209">
+    <name>RPT021</name>
+  </rtept>
+  <rtept lat="28.356135815" lon="-16.502697717">
+    <name>RPT022</name>
+  </rtept>
+  <rtept lat="28.355389933" lon="-16.502150546">
+    <name>RPT023</name>
+  </rtept>
+  <rtept lat="28.355002828" lon="-16.501710664">
+    <name>RPT024</name>
+  </rtept>
+  <rtept lat="28.354521305" lon="-16.500734340">
+    <name>RPT025</name>
+  </rtept>
+  <rtept lat="28.354228613" lon="-16.499983321">
+    <name>RPT026</name>
+  </rtept>
+  <rtept lat="28.353935921" lon="-16.498942624">
+    <name>RPT027</name>
+  </rtept>
+  <rtept lat="28.353803737" lon="-16.497987758">
+    <name>RPT028</name>
+  </rtept>
+  <rtept lat="28.353926479" lon="-16.496775399">
+    <name>RPT029</name>
+  </rtept>
+  <rtept lat="28.353926479" lon="-16.496775399">
+    <name>RPT030</name>
+  </rtept>
+</rte>
+<trk>
+  <name>Track1</name>
+<trkseg>
+<trkpt lat="28.359546000" lon="-16.502867000">
+  <time>2011-09-26T00:00:00Z</time>
+</trkpt>
+<trkpt lat="28.359338000" lon="-16.502598000">
+  <time>2011-09-26T00:00:04Z</time>
+</trkpt>
+<trkpt lat="28.359270000" lon="-16.502511000">
+  <time>2011-09-26T00:00:05Z</time>
+</trkpt>
+<trkpt lat="28.359204000" lon="-16.502291000">
+  <time>2011-09-26T00:00:08Z</time>
+</trkpt>
+<trkpt lat="28.359192000" lon="-16.501396000">
+  <time>2011-09-26T00:00:18Z</time>
+</trkpt>
+<trkpt lat="28.359106000" lon="-16.501013000">
+  <time>2011-09-26T00:00:23Z</time>
+</trkpt>
+<trkpt lat="28.358917000" lon="-16.500654000">
+  <time>2011-09-26T00:00:28Z</time>
+</trkpt>
+<trkpt lat="28.358626000" lon="-16.500342000">
+  <time>2011-09-26T00:00:33Z</time>
+</trkpt>
+<trkpt lat="28.358246000" lon="-16.500081000">
+  <time>2011-09-26T00:00:39Z</time>
+</trkpt>
+<trkpt lat="28.357937000" lon="-16.499408000">
+  <time>2011-09-26T00:00:48Z</time>
+</trkpt>
+<trkpt lat="28.357846000" lon="-16.499208000">
+  <time>2011-09-26T00:00:51Z</time>
+</trkpt>
+<trkpt lat="28.357735000" lon="-16.499147000">
+  <time>2011-09-26T00:00:52Z</time>
+</trkpt>
+<trkpt lat="28.357665000" lon="-16.499194000">
+  <time>2011-09-26T00:00:54Z</time>
+</trkpt>
+<trkpt lat="28.357640000" lon="-16.499329000">
+  <time>2011-09-26T00:00:55Z</time>
+</trkpt>
+<trkpt lat="28.357788000" lon="-16.499707000">
+  <time>2011-09-26T00:01:00Z</time>
+</trkpt>
+<trkpt lat="28.357825000" lon="-16.500150000">
+  <time>2011-09-26T00:01:05Z</time>
+</trkpt>
+<trkpt lat="28.357952000" lon="-16.500374000">
+  <time>2011-09-26T00:01:08Z</time>
+</trkpt>
+<trkpt lat="28.358219000" lon="-16.500677000">
+  <time>2011-09-26T00:01:13Z</time>
+</trkpt>
+<trkpt lat="28.358334000" lon="-16.500943000">
+  <time>2011-09-26T00:01:17Z</time>
+</trkpt>
+<trkpt lat="28.358359000" lon="-16.501330000">
+  <time>2011-09-26T00:01:21Z</time>
+</trkpt>
+<trkpt lat="28.358330000" lon="-16.501666000">
+  <time>2011-09-26T00:01:25Z</time>
+</trkpt>
+<trkpt lat="28.358231000" lon="-16.501900000">
+  <time>2011-09-26T00:01:28Z</time>
+</trkpt>
+<trkpt lat="28.357924000" lon="-16.502231000">
+  <time>2011-09-26T00:01:34Z</time>
+</trkpt>
+<trkpt lat="28.357698000" lon="-16.502363000">
+  <time>2011-09-26T00:01:37Z</time>
+</trkpt>
+<trkpt lat="28.357644000" lon="-16.502394000">
+  <time>2011-09-26T00:01:38Z</time>
+</trkpt>
+<trkpt lat="28.357576000" lon="-16.502446000">
+  <time>2011-09-26T00:01:39Z</time>
+</trkpt>
+<trkpt lat="28.357330000" lon="-16.502535000">
+  <time>2011-09-26T00:01:43Z</time>
+</trkpt>
+<trkpt lat="28.356993000" lon="-16.502545000">
+  <time>2011-09-26T00:01:47Z</time>
+</trkpt>
+<trkpt lat="28.356918000" lon="-16.502569000">
+  <time>2011-09-26T00:01:48Z</time>
+</trkpt>
+<trkpt lat="28.356687000" lon="-16.502552000">
+  <time>2011-09-26T00:01:51Z</time>
+</trkpt>
+<trkpt lat="28.356734000" lon="-16.502402000">
+  <time>2011-09-26T00:01:53Z</time>
+</trkpt>
+<trkpt lat="28.356577000" lon="-16.502170000">
+  <time>2011-09-26T00:01:57Z</time>
+</trkpt>
+<trkpt lat="28.356407000" lon="-16.501902000">
+  <time>2011-09-26T00:02:01Z</time>
+</trkpt>
+<trkpt lat="28.356256000" lon="-16.501634000">
+  <time>2011-09-26T00:02:04Z</time>
+</trkpt>
+<trkpt lat="28.355854000" lon="-16.501039000">
+  <time>2011-09-26T00:02:13Z</time>
+</trkpt>
+<trkpt lat="28.355698000" lon="-16.500794000">
+  <time>2011-09-26T00:02:17Z</time>
+</trkpt>
+<trkpt lat="28.355463000" lon="-16.500421000">
+  <time>2011-09-26T00:02:22Z</time>
+</trkpt>
+<trkpt lat="28.355083000" lon="-16.500100000">
+  <time>2011-09-26T00:02:28Z</time>
+</trkpt>
+<trkpt lat="28.354960000" lon="-16.499323000">
+  <time>2011-09-26T00:02:38Z</time>
+</trkpt>
+<trkpt lat="28.354927000" lon="-16.499073000">
+  <time>2011-09-26T00:02:41Z</time>
+</trkpt>
+<trkpt lat="28.354983000" lon="-16.498794000">
+  <time>2011-09-26T00:02:44Z</time>
+</trkpt>
+<trkpt lat="28.354923000" lon="-16.498684000">
+  <time>2011-09-26T00:02:46Z</time>
+</trkpt>
+<trkpt lat="28.354913000" lon="-16.498582000">
+  <time>2011-09-26T00:02:47Z</time>
+</trkpt>
+<trkpt lat="28.354651000" lon="-16.498306000">
+  <time>2011-09-26T00:02:52Z</time>
+</trkpt>
+<trkpt lat="28.354870000" lon="-16.497995000">
+  <time>2011-09-26T00:02:56Z</time>
+</trkpt>
+<trkpt lat="28.354776000" lon="-16.497697000">
+  <time>2011-09-26T00:03:00Z</time>
+</trkpt>
+<trkpt lat="28.354747000" lon="-16.497604000">
+  <time>2011-09-26T00:03:01Z</time>
+</trkpt>
+<trkpt lat="28.354516000" lon="-16.497422000">
+  <time>2011-09-26T00:03:05Z</time>
+</trkpt>
+<trkpt lat="28.354305000" lon="-16.497400000">
+  <time>2011-09-26T00:03:08Z</time>
+</trkpt>
+<trkpt lat="28.354172000" lon="-16.497408000">
+  <time>2011-09-26T00:03:09Z</time>
+</trkpt>
+</trkseg>
+</trk>
+</gpx>
diff --git a/gpsbabel/reference/arc-project3.gpx b/gpsbabel/reference/arc-project3.gpx
new file mode 100644 (file)
index 0000000..188cd58
--- /dev/null
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx
+  version="1.0"
+  creator="GPSBabel - http://www.gpsbabel.org"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns="http://www.topografix.com/GPX/1/0"
+  xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
+<time>1970-01-01T00:00:00Z</time>
+<bounds minlat="28.353803737" minlon="-16.502955209" maxlat="28.359546000" maxlon="-16.494318496"/>
+<wpt lat="28.357846000" lon="-16.499208000">
+  <time>2011-09-26T00:00:51Z</time>
+  <name>Derecha</name>
+  <cmt>Derecha</cmt>
+  <desc>Derecha</desc>
+  <sym>right</sym>
+</wpt>
+<wpt lat="28.359546000" lon="-16.502867000">
+  <time>2011-09-26T00:00:00Z</time>
+  <name>LAP001</name>
+  <cmt>LAP001</cmt>
+  <desc>LAP001</desc>
+</wpt>
+<wpt lat="28.355463000" lon="-16.500421000">
+  <time>2011-09-26T00:02:22Z</time>
+  <name>Valle</name>
+  <cmt>Valle</cmt>
+  <desc>Valle</desc>
+  <sym>valley</sym>
+</wpt>
+<wpt lat="28.359197123" lon="-16.501778011">
+  <time>2011-09-26T00:00:13.731Z</time>
+  <name>wpt1</name>
+  <cmt>wpt1</cmt>
+  <desc>wpt1</desc>
+  <sym>flag, green</sym>
+</wpt>
+<wpt lat="28.354172000" lon="-16.497408000">
+  <time>2011-09-26T00:03:09Z</time>
+  <name>wpt5</name>
+  <cmt>wpt5</cmt>
+  <desc>wpt5</desc>
+  <sym>flag, green</sym>
+</wpt>
+<wpt lat="28.358886268" lon="-16.500621050">
+  <time>2011-09-26T00:00:28.528Z</time>
+  <name>wpt6</name>
+  <cmt>wpt6</cmt>
+  <desc>wpt6</desc>
+  <sym>flag, green</sym>
+</wpt>
+<rte>
+  <name>Route1</name>
+  <rtept lat="28.354379680" lon="-16.495831262">
+    <name>RPT001</name>
+  </rtept>
+  <rtept lat="28.354813996" lon="-16.495434295">
+    <name>RPT002</name>
+  </rtept>
+  <rtept lat="28.355380492" lon="-16.494962226">
+    <name>RPT003</name>
+  </rtept>
+  <rtept lat="28.355946985" lon="-16.494726192">
+    <name>RPT004</name>
+  </rtept>
+  <rtept lat="28.356522916" lon="-16.494490157">
+    <name>RPT005</name>
+  </rtept>
+  <rtept lat="28.356994989" lon="-16.494393598">
+    <name>RPT006</name>
+  </rtept>
+  <rtept lat="28.357646446" lon="-16.494318496">
+    <name>RPT007</name>
+  </rtept>
+  <rtept lat="28.358165720" lon="-16.494415056">
+    <name>RPT008</name>
+  </rtept>
+  <rtept lat="28.358609462" lon="-16.494683276">
+    <name>RPT009</name>
+  </rtept>
+  <rtept lat="28.359147614" lon="-16.495327007">
+    <name>RPT010</name>
+  </rtept>
+  <rtept lat="28.359374203" lon="-16.496067296">
+    <name>RPT011</name>
+  </rtept>
+  <rtept lat="28.359411968" lon="-16.496818315">
+    <name>RPT012</name>
+  </rtept>
+  <rtept lat="28.359355321" lon="-16.497612249">
+    <name>RPT013</name>
+  </rtept>
+  <rtept lat="28.359100408" lon="-16.498416911">
+    <name>RPT014</name>
+  </rtept>
+  <rtept lat="28.359005995" lon="-16.498888980">
+    <name>RPT015</name>
+  </rtept>
+  <rtept lat="28.358987113" lon="-16.499790202">
+    <name>RPT016</name>
+  </rtept>
+  <rtept lat="28.358826611" lon="-16.501227866">
+    <name>RPT017</name>
+  </rtept>
+  <rtept lat="28.358656668" lon="-16.502161275">
+    <name>RPT018</name>
+  </rtept>
+  <rtept lat="28.358052424" lon="-16.502794276">
+    <name>RPT019</name>
+  </rtept>
+  <rtept lat="28.357419853" lon="-16.502944480">
+    <name>RPT020</name>
+  </rtept>
+  <rtept lat="28.356683421" lon="-16.502955209">
+    <name>RPT021</name>
+  </rtept>
+  <rtept lat="28.356135815" lon="-16.502697717">
+    <name>RPT022</name>
+  </rtept>
+  <rtept lat="28.355389933" lon="-16.502150546">
+    <name>RPT023</name>
+  </rtept>
+  <rtept lat="28.355002828" lon="-16.501710664">
+    <name>RPT024</name>
+  </rtept>
+  <rtept lat="28.354521305" lon="-16.500734340">
+    <name>RPT025</name>
+  </rtept>
+  <rtept lat="28.354228613" lon="-16.499983321">
+    <name>RPT026</name>
+  </rtept>
+  <rtept lat="28.353935921" lon="-16.498942624">
+    <name>RPT027</name>
+  </rtept>
+  <rtept lat="28.353803737" lon="-16.497987758">
+    <name>RPT028</name>
+  </rtept>
+  <rtept lat="28.353926479" lon="-16.496775399">
+    <name>RPT029</name>
+  </rtept>
+  <rtept lat="28.353926479" lon="-16.496775399">
+    <name>RPT030</name>
+  </rtept>
+</rte>
+<trk>
+  <name>Track1</name>
+<trkseg>
+<trkpt lat="28.359546000" lon="-16.502867000">
+  <time>2011-09-26T00:00:00Z</time>
+</trkpt>
+<trkpt lat="28.359338000" lon="-16.502598000">
+  <time>2011-09-26T00:00:04Z</time>
+</trkpt>
+<trkpt lat="28.359270000" lon="-16.502511000">
+  <time>2011-09-26T00:00:05Z</time>
+</trkpt>
+<trkpt lat="28.359204000" lon="-16.502291000">
+  <time>2011-09-26T00:00:08Z</time>
+</trkpt>
+<trkpt lat="28.359192000" lon="-16.501396000">
+  <time>2011-09-26T00:00:18Z</time>
+</trkpt>
+<trkpt lat="28.359106000" lon="-16.501013000">
+  <time>2011-09-26T00:00:23Z</time>
+</trkpt>
+<trkpt lat="28.358917000" lon="-16.500654000">
+  <time>2011-09-26T00:00:28Z</time>
+</trkpt>
+<trkpt lat="28.358626000" lon="-16.500342000">
+  <time>2011-09-26T00:00:33Z</time>
+</trkpt>
+<trkpt lat="28.358246000" lon="-16.500081000">
+  <time>2011-09-26T00:00:39Z</time>
+</trkpt>
+<trkpt lat="28.357937000" lon="-16.499408000">
+  <time>2011-09-26T00:00:48Z</time>
+</trkpt>
+<trkpt lat="28.357846000" lon="-16.499208000">
+  <time>2011-09-26T00:00:51Z</time>
+</trkpt>
+<trkpt lat="28.357735000" lon="-16.499147000">
+  <time>2011-09-26T00:00:52Z</time>
+</trkpt>
+<trkpt lat="28.357665000" lon="-16.499194000">
+  <time>2011-09-26T00:00:54Z</time>
+</trkpt>
+<trkpt lat="28.357640000" lon="-16.499329000">
+  <time>2011-09-26T00:00:55Z</time>
+</trkpt>
+<trkpt lat="28.357788000" lon="-16.499707000">
+  <time>2011-09-26T00:01:00Z</time>
+</trkpt>
+<trkpt lat="28.357825000" lon="-16.500150000">
+  <time>2011-09-26T00:01:05Z</time>
+</trkpt>
+<trkpt lat="28.357952000" lon="-16.500374000">
+  <time>2011-09-26T00:01:08Z</time>
+</trkpt>
+<trkpt lat="28.358219000" lon="-16.500677000">
+  <time>2011-09-26T00:01:13Z</time>
+</trkpt>
+<trkpt lat="28.358334000" lon="-16.500943000">
+  <time>2011-09-26T00:01:17Z</time>
+</trkpt>
+<trkpt lat="28.358359000" lon="-16.501330000">
+  <time>2011-09-26T00:01:21Z</time>
+</trkpt>
+<trkpt lat="28.358330000" lon="-16.501666000">
+  <time>2011-09-26T00:01:25Z</time>
+</trkpt>
+<trkpt lat="28.358231000" lon="-16.501900000">
+  <time>2011-09-26T00:01:28Z</time>
+</trkpt>
+<trkpt lat="28.357924000" lon="-16.502231000">
+  <time>2011-09-26T00:01:34Z</time>
+</trkpt>
+<trkpt lat="28.357698000" lon="-16.502363000">
+  <time>2011-09-26T00:01:37Z</time>
+</trkpt>
+<trkpt lat="28.357644000" lon="-16.502394000">
+  <time>2011-09-26T00:01:38Z</time>
+</trkpt>
+<trkpt lat="28.357576000" lon="-16.502446000">
+  <time>2011-09-26T00:01:39Z</time>
+</trkpt>
+<trkpt lat="28.357330000" lon="-16.502535000">
+  <time>2011-09-26T00:01:43Z</time>
+</trkpt>
+<trkpt lat="28.356993000" lon="-16.502545000">
+  <time>2011-09-26T00:01:47Z</time>
+</trkpt>
+<trkpt lat="28.356918000" lon="-16.502569000">
+  <time>2011-09-26T00:01:48Z</time>
+</trkpt>
+<trkpt lat="28.356687000" lon="-16.502552000">
+  <time>2011-09-26T00:01:51Z</time>
+</trkpt>
+<trkpt lat="28.356734000" lon="-16.502402000">
+  <time>2011-09-26T00:01:53Z</time>
+</trkpt>
+<trkpt lat="28.356577000" lon="-16.502170000">
+  <time>2011-09-26T00:01:57Z</time>
+</trkpt>
+<trkpt lat="28.356407000" lon="-16.501902000">
+  <time>2011-09-26T00:02:01Z</time>
+</trkpt>
+<trkpt lat="28.356256000" lon="-16.501634000">
+  <time>2011-09-26T00:02:04Z</time>
+</trkpt>
+<trkpt lat="28.355854000" lon="-16.501039000">
+  <time>2011-09-26T00:02:13Z</time>
+</trkpt>
+<trkpt lat="28.355698000" lon="-16.500794000">
+  <time>2011-09-26T00:02:17Z</time>
+</trkpt>
+<trkpt lat="28.355463000" lon="-16.500421000">
+  <time>2011-09-26T00:02:22Z</time>
+</trkpt>
+<trkpt lat="28.355083000" lon="-16.500100000">
+  <time>2011-09-26T00:02:28Z</time>
+</trkpt>
+<trkpt lat="28.354960000" lon="-16.499323000">
+  <time>2011-09-26T00:02:38Z</time>
+</trkpt>
+<trkpt lat="28.354927000" lon="-16.499073000">
+  <time>2011-09-26T00:02:41Z</time>
+</trkpt>
+<trkpt lat="28.354983000" lon="-16.498794000">
+  <time>2011-09-26T00:02:44Z</time>
+</trkpt>
+<trkpt lat="28.354923000" lon="-16.498684000">
+  <time>2011-09-26T00:02:46Z</time>
+</trkpt>
+<trkpt lat="28.354913000" lon="-16.498582000">
+  <time>2011-09-26T00:02:47Z</time>
+</trkpt>
+<trkpt lat="28.354651000" lon="-16.498306000">
+  <time>2011-09-26T00:02:52Z</time>
+</trkpt>
+<trkpt lat="28.354870000" lon="-16.497995000">
+  <time>2011-09-26T00:02:56Z</time>
+</trkpt>
+<trkpt lat="28.354776000" lon="-16.497697000">
+  <time>2011-09-26T00:03:00Z</time>
+</trkpt>
+<trkpt lat="28.354747000" lon="-16.497604000">
+  <time>2011-09-26T00:03:01Z</time>
+</trkpt>
+<trkpt lat="28.354516000" lon="-16.497422000">
+  <time>2011-09-26T00:03:05Z</time>
+</trkpt>
+<trkpt lat="28.354305000" lon="-16.497400000">
+  <time>2011-09-26T00:03:08Z</time>
+</trkpt>
+<trkpt lat="28.354172000" lon="-16.497408000">
+  <time>2011-09-26T00:03:09Z</time>
+</trkpt>
+</trkseg>
+</trk>
+</gpx>
diff --git a/gpsbabel/testo.d/arc-project.test b/gpsbabel/testo.d/arc-project.test
new file mode 100644 (file)
index 0000000..902e7a3
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# arc-project filter tests
+#
+
+rm -f ${TMPDIR}/arc-project*
+
+# Test 1: rte & trk options
+gpsbabel -i gpx -f ${REFERENCE}/arc-project.gpx -x arc,rte,exclude,distance=0.1K -x arc,trk,exclude,distance=0.1K -o gpx -F ${TMPDIR}/arc-project1.gpx
+compare ${TMPDIR}/arc-project1.gpx ${REFERENCE}/arc-project1.gpx
+
+# Test 2: rte, project & points options
+gpsbabel -i gpx -f ${REFERENCE}/arc-project.gpx -x arc,rte,project,points,distance=0.1K -o gpx -F ${TMPDIR}/arc-project2.gpx
+compare ${TMPDIR}/arc-project2.gpx ${REFERENCE}/arc-project2.gpx
+
+# Test 3: trk & project options
+gpsbabel -i gpx -f ${REFERENCE}/arc-project.gpx -x arc,trk,project,distance=0.1K -o gpx -F ${TMPDIR}/arc-project3.gpx
+compare ${TMPDIR}/arc-project3.gpx ${REFERENCE}/arc-project3.gpx
index 0af544fbaa89d66706e856d694b06c9399c1ea21..eb8dbcb1abdc6f863daef406bca1629953e3afb3 100644 (file)
@@ -1,5 +1,4 @@
 rm -f ${TMPDIR}/subrip.srt
-set -x
 gpsbabel -i gpx -f ${REFERENCE}/track/gpx_subsecond-sample.gpx -o subrip -F ${TMPDIR}/subrip.srt
 # FIXME: This can't work right until we move to "real" subsecond support.
 # compare  ${REFERENCE}/track/gpx_subsecond-sample~subrip.srt ${TMPDIR}/subrip.srt
diff --git a/gpsbabel/xmldoc/filters/arc-project.xml b/gpsbabel/xmldoc/filters/arc-project.xml
new file mode 100644 (file)
index 0000000..4f8a77c
--- /dev/null
@@ -0,0 +1,17 @@
+<para>
+When this option is specified, each non deleted waypoint is moved over the
+closest segment, or over the nearest point if <option>points</option> option
+is used.
+</para>
+<para>
+With the <option>rte</option> and <option>trk</option> options, if
+is possible, altitude, creation_time and microsecond fields of waypoints
+are updated by interpolation.
+</para>
+<para>
+This is most useful if you are trying to obtain the closest points in
+a road to some places. Or if you want to know the step times on some
+places over the tracks. Also to transform waypoints in Garmin course points
+(see <link linkend="fmt_gtrnctr">gtrnctr</link> and
+<link linkend="fmt_garmin">garmin</link> format).
+</para>
diff --git a/gpsbabel/xmldoc/filters/arc-rte.xml b/gpsbabel/xmldoc/filters/arc-rte.xml
new file mode 100644 (file)
index 0000000..5e18da5
--- /dev/null
@@ -0,0 +1,5 @@
+<para>
+When this option is specified the routes contains the vertices of the arc.
+If there are several routes then it is assumed that there is a gap between
+each of them.
+</para>
diff --git a/gpsbabel/xmldoc/filters/arc-trk.xml b/gpsbabel/xmldoc/filters/arc-trk.xml
new file mode 100644 (file)
index 0000000..f8135a6
--- /dev/null
@@ -0,0 +1,5 @@
+<para>
+When this option is specified the tracks contains the vertices of the arc.
+If there are several tracks then it is assumed that there is a gap between
+each of them.
+</para>
index 3b901a28e0d4687a7e754e6f941138e158d91891..902d35dcc8a7053a3ff37d02c087221a88a51840 100644 (file)
@@ -1,12 +1,13 @@
 <para> 
 This filter keeps or removes waypoints based on their proximity to an arc, 
 which is a series of connected line segments similar to a route or a track 
-but without any associated data other than the coordinates.
+but without any associated data other than the coordinates.  Optionally, it
+can move each non-deleted waypoint over the closest segment of the arc.
 </para>
 
 <para> 
-The arc is defined in a file whose name must be provided with the 
-<option>file</option>.  That file contains pairs of coordinates for the 
+The arc may defined in a file whose name must be provided with the 
+<option>file</option>, or the tracks or routes that have already been read.  That file contains pairs of coordinates for the 
 vertices of the arc, one coordinate pair per line.  Comments may be
 included by preceding them with a '#' character.  An arc file looks 
 something like this sample:
index 6316b64c4b7aceb8cb2f58398c88173d263754a0..f99544aca7baf1b82c6c7f21bbe959f93b33940c 100644 (file)
@@ -1,7 +1,4 @@
 <para>
-This option is required.
-</para>
-<para>
 This option specifies the name of the file containing the arc to use for
 filtering.  The format of the file is as described above.
 </para>